Skip to main content

Full text of "MSX Extra #25 #26"

See other formats


DEVS EX MACHINA 

¡¡EL AUDIO-VIDEO!! 
EN 




DEVS EX MACHINA 
EL CONCEPTO MAS AVANZADO 
EN JUEGOS PARA TU MSX 
¡SIENTATE ANTE TU MSX 
CONECTA LA BANDA SONORA 
Y VIAJA HACIA EL FUTURO...! 



¡LA AUDIO-VIDEO AVENTURA 
MAS ALUCINANTE JAMAS 
CREADA...! 



Mariano Cubi. 4 Entio. Tel. 218 34 00 - 08006 Barcelona 




¡FELICIDADES! 



Este número doble que tenéis 
en vuestras manos es de gran sig- 
nificación para todos nosotros. El 
representa la culminación de dos 
años de permanente contacto en 
el que nosotros, como editores, y 
vosotros, como lectores, hemos 
aprendido a conocernos. 

Si echamos la mirada atrás y 
comparamos el primer número 
con éste constataremos cuánto 
hemos evolucionado y en qué me- 
dida hemos ido incorporando 
vuestras sugerencias a fin de que 
MSX EXTRA sea una verdadera 
revista interactiva. 

Ahora, al culminar el segundo 
año de permanente contacto con 
vosotros nos congratulamos de 
que forméis parte de nuestro 
equipo. 

En este sentido, en ocasión de 
brindar con vosotros, nuestros 
queridos lectores, os anunciamos 
importantes cambios en la revis- 
ta. Cambios que redundarán, ob- 
viamente, en beneñcio vuestro,ya 
que abordaremos con mayor pro- 
fundidad todo lo relacionado con 
el MSX-2 a la par que aumentare- 
mos el número de páginas, entre 
otros aspectos. 

Procuraremos que las transfor- 
maciones no sean traumáticas, 
pues de ser así traicionaríamos el 
espíritu de la pubhcación. La idea 
es que al igual que el estándar 
MSX, esta pubhcación no sólo sea 
útil para el usuario doméstico 
sino también COMPATIBLE con 
las aplicaciones de la oñcinaydel 
colegio. 

Mientras ese primer número 
de 1987 llega, recibid todos nues- 
tro agradecimiento por la gran 
confianza que durante estos dos 
últimos años nos habéis dispen- 
sado, junto al deseo de felicidad y 
prosperidad para estas Navida- 
des y Año Nuevo. 

MANHATTAN TRANSFER, SJL 




SUMARIO 

AÑO II N.° 25-26 DICIEMBRE 1986 
P.V.F. 350 ptas. (Incluido IVA 
y sobretasa aérea Canarias) 
Los días 15 de cada mes* 



HÍPUT /OUTPUT 

Las entradas y salidas a las consultas de nuestros lectores 

LA FUERZA DEL MSX-2 

Analizamos el Philips NMS-8250 y destacamos su potencia gráfica 

CALLVI 

Ventanas de texto en Screen 2 es el tema de la sexta entrega de Cali 

MSXDISK 

Abordamos un tema muy interesante sobre el lenguale 
de disco del MSX 

GIROMATICA 

Un modo sorprendente de trabajar con gráficos. La giromática 
es un método nuevo y original 

NUEVO MODELO DE LA 
1. a GENERACIONAL 

Sanyo nos presenta su MPC-200 y nosotros lo analizamos 

PROGRAMAS 

- Brujerías 

- Busca la pareja 

- Graflc 

- Cuatro 
-Golf 
-Tiro 

DEL HARD AL SOFT 

En el capítulo 19 de esta sección se abordan las memorias del MSX 

BIT BIT 

Comentarios sobre los últimos juegos MSX 

EN PANTALLA 

Las novedades más importantes del mundo del MSX 

RUTINAS DE ENTRADAS DE DATOS 

Profundizamos en un aspecto muy importante de la programación 

INDICE 1986 66 

Indice temático y detallado de todos los programas editados en el curso de este año 



4 
10 
14 
19 

24 
26 

28 
37 
39 
41 
43 
48 

51 
54 
58 
62 




MSX EXTRA E8 EDITADA POR MANHATTAN TRANSFER, SJL 
Director Editorial: Antonio Tello Salvatierra. 
Director Ejecutivo: Birgitta Sandberg. 
Redactor Jefe: Javier Guerrero. Redactores: Claudia T. Helbling, 
Silvestre Fernández y Rubén Jiménez. Colaboradores: Angel Toribio, 
Feo. Jesús Viceyra, Joaquín López. Departamento de programación: 
Juan C. González. Diseño: Félix Llanos. Grafismo: Juan Núñez, 
Caries Rubio. Suscripciones: Silvia Soler. Redacción, Administración y 
Publicidad: Roca i Batlle, 10-12. 08023 Barcelona. Tel. (93) 211 22 56. 

Fotomecánica y Fotocomposiclón: Ungraf, 8 A. Pujadas, 77-79. 08008 Barcelona. 
Imprime: Qrefol. Políg. II Lafuensanta Pare. 1 Móstoles (Madrid) 
Distribuya: GME, 8 A. Plaza de Castilla 3, 18.° E. 2. 28046 Madrid 
Todo el material editado es propiedad de Manhattan Transfer. 8_A_ 
Prohibida la reproducción total o parcial sin la debida autorización escrita. 











MODEM MSX: 



Me gustaría que me dieran 
información sobre dónde pue- 
do encontrar un modem para 
MSX. 

José Montrós 
TARRAGONA 




En la mayoría de ¡os MSX no 
se puede conectar directamen- 
te un acoplador acústico (ya 
que supongo que te referirás a 
un acoplador acústico al ha- 
blar de modem ). Para conectar 
un acoplador acústico a los 
MSX debes, en primer lugar, 
conseguir un ínter faz RS-232, 
que es el que permite las trans- 
misiones en serie. Es a este in- 
terfaz al que puedes conectar 
el acoplador acústico, que no 
ha de ser MSX, ya que, como en 
las impresoras, el ínter faz RS- 
232 te permite conectar cual- 
quiera de los existentes en el 
mercado. 

Por ejemplo, puedes conec- 
tar el acoplador acústico co- 
mercializado por General 
Electrics modelo 3-8200. 

Vamos a comentar la dife- 
rencia entre los modemsy los 
acopladores acústicos, ya que 
el confundirlos es un error 
m uy generalizado. 

Los acopladores acústicos 
son unos aparatos que reciben 
sonidos, como los del cassette, 
por medio de la línea teléfoni- 
ca. Esta es la razón por la que 
se conecta el auricular del telé- 
fono al acoplador acústico. En 
cambio, los modems transmi- 
ten por modulación como las 
ondas de radio, sirviéndose 
también de la linea telefónica. 
Los modems no se conectan al 
aparato del teléfono sino di- 
rectamente a la línea telefóni- 
ca, y en España sólo pueden 
ser instalados por la compa- 
ñía telefónica o alguna de sus 
filiales. 



IMPRESORA PLOTTER: 



Un amigo tiene una PLOT- 
TER PRINTER HX-P570 de 
Toshiba y sólo consigue impri- 
mir textos utilizando LPRINT 
y LLIST. Nos gustaría también 
imprimir dibujos. Creemos 
que tiene que estar relaciona- 



do con la instrucción OPEN 
"LPT:" pero no sabemos utili- 
zarla. 

Carlos Rioja 
BURGOS 

Para conseguir generar grá- 
ficos con una impresora plot- 
ter debes hacerlo por medio de 
secuencias de escape. Debes 
consultar el manual de la im- 
presora para encontrar la ta- 
bla de las secuencias de escape 
operativas en esa impresora. 
Los comandos gráñcos serán, 
por tanto, de la forma 

LPRINT CHR$( 27); 
"—"; "123,346" 

Siento decirte que no tiene 
nada que ver con la instruc- 
ción OPEN "LPT:"; pero te ase- 
guro que trataremos esta ins- 
trucción dentro del curso de 
BASIC: EL BASIC PASO A 
PASO. 



COMPATIBILIDAD DE LOS 

JUECOS: 



Tengo un SVT-738 y me han 
dicho que los juegos como 
Alien-8, Knight Lore, Gunfight 
o Nightshade no sirven para 
el. ¿Es cierto? 

Antonio Javier Guerra 
Las Palmas de G.C. 

Evidentemente se trata de 
rumores sin fundamento, ya 
que los programas comercia- 
les, y más en concreto los de 
ULTIMATE (caso que estás ci- 
tando) corren perfectamente 
en todos los ordenadores de la 
norma MSX que tengan sufi- 
ciente memoria. Podemos ase- 
gurarte, que estos programas 
corren perfectamente en los 
ordenadores SVI-738, ya que 
los hemos probado personal- 
mente. 

Puede ocurrir que copias pi- 
ratas de estos programas no 
corran en ciertas maquinas. 
Esto se debe a que los piratas 
se dedican a hacer copias cha- 
puceras, sin verificar que cum- 
plan las normas de compatibi- 
lidad establecidas por la nor- 
ma MSX. 

En el caso de los originales 
no tengas ningún miedo. Fun- 
cionan perfectamente. 



GESTION DE MEMORIA EN 
LOSMSX-2 

He comprado un MSX-2 del 
que estoy muy contento. Cuan- 
do intento cargar programas 
para 64 Kb de los MSX-1 no 
puedo hacerlo si no anulo la 
unidad de disco, con lo que lue- 



go no puedo grabar el progra- 
ma en ella. ¿Qué puedo hacer? 

Puesto que la memoria RAM 
de mi ordenador es de 128 Kb y 
gasta 4 Kb en el disquette y me 
deja Ubres 24. ¿Qué hace con 
los 100 restantes? 

¿Es posible que para los 
MSX-2 salgan juegos tipo 
«Dragon's Lair» que incorpo- 
ren película de dibujos anima- 
dos y que sus gráficos sean 
como los de las máquinas de 
cinco duros? 

Manuel Martínez 
Esplugues de Uobregat 

Esta pregunta (me reñero a 
la primera) se la hacen la gran 
mayoría de los usuarios de 
unidades de disco. En realidad 
el problema radica en lo más 
profundo del ordenador: el mi- 
croprocesador. El Z-80 sólo 
puede trabajar con 64 Kb de 
memoria. Para aplicaciones 
profesionales se ideó un siste- 
ma que permitía trabajar con 
una mayor cantidad de memo- 
ria: el sistema de bancos. La 
memoria de los MSX se divide 
asi en bancos, de modo que 
pueden llegar a ocupar 1024 
Kb de memoria. El mayor in- 
conveniente de este sistema de 
explotación es que no es acce- 
sible desde el BASIC. Es decir, 
en BASIC sólo puede trabajar 
con 64 Kb. De éstos, 32 Kb los 
utiliza él mismo para poder 
funcionar, y son los 32 Kb de 
ROM, otros 4 Kb son utilizados 
para almacenar las variables 
internas del BASIC y los gan- 
chos de la ROM, y por último 
otros 4Kb son utilizados por la 
unidad de disco si ésta está co- 
nectada. Resultado: 24 Kb de 
RAM. Lamentablemente debo 
informarte de que no hay solu- 
ción posible por el momento, 
aunque estamos trabajando en 
un programa de paginación 
automática que solucionará 
este problema. 

Respecto ala última pregun- 
ta la respuesta es sí. Los MSX- 
2, con su revolucionaria capa- 
cidad gráfica permite la reali- 
zación de animaciones y de 
gráficos de gran definición. 
Por lo tanto, que aparezcan 
programas como los que tú co- 
mentas es solo cuestión de 
tiempo; y esperemos que poco. 



BORRADO DE LINEAS: 



Para borrar una linea de un 
programa es suficiente con te- 
clear el número de dicha linea 
y luego pulsar RETURN. Pero 
¿y si quiero borrar desde la lí- 
nea 20 por ejemplo hasta la lí- 
nea 130? ¿cómo lo hago si es 
que se puede? 

Agustí Company 
BARCELONA 



Como tú bien dices, para bo- 
rrar una línea de un programa 
basta con escribir su n úmeroy 
a continuación pulsar RE- 
TURN Para borrar un bloque 
de líneas debes utilizar el co- 
mando DELETE. Este comando 
funciona de las siguientes for- 
mas: 

DELETE xxxx-yyyy borrará 
todas las líneas comprendidas 
entre la xxxxy la yyyy, ambas 
inclusive. Siguiendo con tu 
propio ejemplo haríamos DE- 
LETE 20-130. 

DELETE -xxxx borrará to- 
das las líneas del programa 
que tengan un número de línea 
menor o Igual que xxxx. Si qui- 
sieras borrar desde el princi- 
pio de tu programa hasta la U- 
nea 130 (inclusive) harías 
DELETE -130. 




CON GARANTIA 



QUINIELAS 1X2 

Les pedí la cinta de QUINIE- 
LAS; pero, después de' entrar 
todos los datos la quiniela se 
realiza al azar, es decir, que no 
tiene en cuenta la estadística 
de los datos entrados. Esto es 
lo que me ha dado el programa 
y aclárenmelo si estoy equivo- 
cado. 

Miguel Loaano CAlicante) 

Tu pregunta nos sorprende, 
ya que la explicación a tu pre- 
gunta se encuentra especifica- 
da con claridad en la carátula 
del cassette de quinielas. En la 
pantalla del cálculo de la qui- 
niela aparecen dos opciones: 
MANUAL y AUTOMATICO. La 
quiniela se realizará aleatoria- 
mente (lo cual puede ser inte- 
resante para quinielas con 



4 



Output 






/ i / . / 



X'PRESS MSX-2: 



Les ruego me indiquen la 
diferencia que existe entre 
un Spectravideo SVI-738 
(X'press) y un Philips 8235 
( MSX-2). ¿Pueden los MSX-1 
transformarse en MSX-2 me- 
diante alguna ampliación? 
Antonio Plaza de Diego 
MADRID 

En primer lugar, la diferen- 
cia entre el SVI-738 y cual- 
quier modelo de la segunda ge- 
neración es clara: el SVIno es 
de la segunda generación. Esto 
quiere decir que no goza de las 
ampliaciones propias del 
MSX-2, en cuanto a gráficos, 
por ejemplo. Sin embargo, den- 
tro de los MSX de primera ge- 
neración, el SVI- 738 ofrece las 
mejores características, ya 
que lleva incorporada la uni- 
dad de disco, así como la tarje- 
ta de 80 columnas (muy im- 
portante en las actividades 
profesionales) y el interfaz se- 
rie RS-232, lo que permite que 



se puede comunicar con otros 
ordenadores (sean o no del es- 
tándar )ein tercam biar datos y 
programas. Es, sin lugar a du- 
das, un MSX-1 marcadamente 
profesional; pero que no tiene 
las capacidades gráficas ni el 
BASIC ampliado de los MSX-2. 

Aparentemente sí podrían 
convertirse los MSX-1 en 
MSX-2 ( no de forma sencilla ). 
Para realizar esta conversión 
se deberían sustituir los chips 
de la ROM del BASIC y del VDP 
(Procesador de la pantalla de 
Video) por los utilizados por 
los MSX-2, así como insertar 
nuevos chips de memoriay tal 
vez realizar algunas otras mo- 
dificaciones internas. Eviden- 
temente no se trata de un pro- 
ceso simple (como insertar un 
cartucho y ya está); pero no 
descartamos que se llegue a 
realizar en el futuro. Por el mo- 
mento no sabemos de ninguna 
empresa que realice este paso 
de MSX- la MSX-2. 



partidos extranjeros o de los 
cuales no tengamos suficien- 
tes datos como para elaborar 
la estadística) siempre que, 
tras tomar la segunda opción 
respondas 20 a la pregunta del 
número de boletos a rellenar. 

Te recomendamos que leas 
detenidamente las instruccio- 
nes del programa. 



COLUMNAS; COLUMNAS... 

¿Hay en el mercado algún 
procesador de texto que per- 
mita mezclar diferentes tipos 
de letra en el texto? 

La tarjeta de 80 columnas de 
Dynadata, ¿hará compatibles 
los programas de la segunda 



generación de MSX con los de 
la primera? ¿Los procesado- 
res de 40 columnas pueden ser 
usados con esta tarjeta? 

José Antonio López 
JAEN 

Mezclar diferentes tipos de 
letra en un texto no suele ser 
problema del procesador de 
texto, sino de la impresora. Si 
tu impresora admite diferen- 
tes tipos de letra en el manual 
se te indicarán los códigos (se- 
cuencias de escape) corres- 
pondientes a cada tipo de letra. 
La mayoría de los procesado- 
res de texto admiten la entra- 
da desde el teclado de estos có- 
digos, de modo que pueden mo- 
dificar así el tipo de letra del 
documento final. En concreto, 
ya que estamos trabajando con 
él en la redacción, podemos 
asegurarte que esta operación 
es posible con el programa 
Idea-Text de Idealogic. 



2P 



Evidentemente la tarjeta de 
80 columnas no convierte a un 
MSX de la primera generación 
en un MSX-2, ya que dicha tar- 
jeta sólo solven ta una de las di- 
ferencias entre ambas genera- 
ciones. De este modo, no todos 
los programas de la segunda 
generación funcionarán con 
la tarjeta de 80 columnas; por 
ejemplo, los que utilicen algu- 
na de las nuevas posibilidades 
gráficas de los MSX-2. 

Por último, a tu tercera pre- 
gunta tenemos que decirte que 
sí. Los procesadores de 40 co- 
lumnas funcionarán correcta- 
mente con la tarjeta de 80 co- 
lumnas, aunque no podrán sa- 
car partido de ella ya que sólo 
representarán en pantalla las 
40 columnas usuales. 



INDOCUMENTADO 

Me he comprado una unidad 
de disco CANON, que como sa- 
béis adjunta un diskette con el 
sistema operativo MSX DOS. 
En el momento en que conecto 
el sistema y la unidad de disco 
me sale MSX DISK BASIC ver- 
sión 1.0. Si entonces escribo 
CALL SYSTEM me dice Illegal 



Function Cali. ¿Está averiado 
el ordenador o la unidad de dis- 
co? ¿Puede tratarse de un dis- 
kette defectuoso? 

Alberto Molinero 
(Tenerife) 




Ni lo uno ni lo otro sino todo 
lo contrario. Me parece que el 
origen de todos tus problemas 
es bastante más profundo que 
todo eso. No te alarmes, no es 
que sea una avería de nada. 
Cuando digo que tu problema 
es profundo, me refiero a que 
en realidad no es un problema 
de aparatos, sino tuyo. 

Desgraciadamente hay mu- 
chos lectores que envían con- 
sultas a esta redacción que po- 
drían solucionar fácilmente 
con una lectura del manual de 
los aparatos que manejan. 
Esto provoca a veces proble- 
mas de espacio en nuestra re- 
vista, ya que contestando a 
cuestiones tan evidentes (que 
se repiten con mas frecuencia 
de la deseada ) nos vemos obli- 
gados a «recortar» algunas 
otras respuestas que merece- 
rían más extensión. 

Tranquilízate, tanto tu orde- 
nador, como la unidad de disco 
como el diskette funcionan 
perfectamente. Simplemente 
debes colocar el diskette con el 
sistema operativo en la unidad 
de disco antes de encender el 
ordenador. A partir de ese mo- 
mento, se cargara el MSX DOS 
en el ordenador. Si desde ahí 
deseas ir al BASIC, tan sólo de- 
bes escribirlo y pulsar RE- 
TURN. A partir de ese momen- 
to, escribiendo CALL SYSTEM 
puedes volver al MSX DOS en 
cualquier momento, pero note 
olvides de colocar el disco de 
sistema en la unidad, puesto 
que si no volverás a encontrar- 
te con un error. 

Te aseguro que todo esto lo 
explica el manual. De nada. 



5 



Input 



¡AQUI ESTA EL MEJOR 
PROGRAMA DEL AÑO! 

Por votación de nuestros lectores el mejor progra- 
ma del año 1986 es MONTGOLFIER. 

Su autor, Eduard Playa González, ha ganado una 
UNIDAD DE DISCOS PHILIPS VY-0010, que le será en- 
tregada durante el mes de enero próximo, en nuestra 
redacción. 



De acuerdo con las bases del 
concurso de programación, 
los votantes de los programas 




que quedaron en primer y se- 
gundo lugar, participan en un 
sorteo optando a diez premios. 
Los agraciados con cartuchos, 
cassettes, adaptadores, joys- 
ticks, etc. son los siguientes: 

— C. Martínez Marín, de 
Barcelona. 

— Pedro Ferré ir a Morán, 
de Madrid. 

— Miguel Quintero Ro- 
dríguez, de Cádiz. 

— Juan María Echava- 
rría, de San Sebastián. 

— José A. Marín Marín, 
de Madrid. 

— Rafael Barrio nuevo, de 
Madrid. 

— Francisco J. Casado, de 
San Adrián de Besos. 

— Miguel Fernández, de 
Barcelona. 

— Rubén Castellano, de 
Madrid. 

— Jorge Juan Ruiz, de Se- 
villa. 

— Carlos Mijares, de Bil- 
bao. 



INTERACCION BASIC- 
CODIGO MAQUINA 

¿Cómo se pueden devolver 
valores al BASIC estando estos 
en C.M.? 

Héctor Martín 
TENERIFE 

Esta operación de ¡a que nos 
cuestionas se puede realizar 
de numerosas formas. La más 
sencilla es situar los paráme- 
tros en una zona de memoria 
determinada, y luego obtener- 
los desde el BASIC con PEEK. 
He aquí un ejemplo: 
LDA; xxx; situamos en el acu- 
mulador el dato a entregar al 
BASIC. 

LD (AAAAH), A; situamos en 
la dirección de memoria AAAA 
el dato. 



Output 



RET; volvemos al BASIC. 

Una vez en BASIC basta con 
hacer: 

D = PEEK (HAAAA) 'Lee el 
dato de la memoria. 

Otra forma de hacerlo, mu- 
cho más correcta; pero algo 
más complicada es devolver 
los parámetros como resulta- 
do de la función USR. Esto se 
consigue situando los datos en 
la dirección de memoria utili- 
zada por el DAC (acumulador 
decimal ). Es decir en las direc- 
ciones HF7F6 a HF846. El va- 
lor lo retorna directamente la 
función USR con la que pone- 
mos en marcha el programa 
en ensamblador. Así podemos 
hacer: 

D = USR (O), quedando el valor 
en la variable D. 



COMO MEDIR LA 
MEMORIA 



¿Cómo se pueden medir los 
Kilobytes de un programa? 

¿Está en MSX el juego 
«Match Day»? 

Iñigo Ibánez 
Le joña (VIZCAYA) 

Medir los Kb que ocupa un 
programa es algo muy senci- 
llo. En primer lugar debes sa- 
ber cuál es la memoria libre 
del ordenador en el momento 
de encenderlo. Esto te lo indica 
el ordenador cuando lo encien- 
des sin necesidad de que hagas 
nada en particular. Suponga- 
mos que el ordenador marca 
28815 bytes free; en ese mo- 
mento ten em os 28 Kb libres. Sí 
tras escribir el programa, o 
cargarlo de la cinta hacemos 
PRINT FRE (0) y pulsamos 
RETURN, el ordenador mos- 
trará la memoria libre. Supon- 
gamos que marca 12354. La 
memoria ocupada por el pro- 
grama no es más que la dife- 
rencia entre ambas cantida- 
des. En este caso seria 2881 5 - 
12354 = 16461. El programa 
ocupa, por tanto 16461 bytes; 
unos 16 Kb aproximadamen- 
te. 

Si el programa está en códi- 
go máquina la tarea resulta un 
poco más complicada. Sí tienes 
conocimientos en este lengua- 
je podrás obtener las direccio- 
nes inicial y final del progra- 
ma, cuya diferencia te dará la 
memoria ocupada por el pro- 
grama. 

Acerca de tu segunda pre- 
gunta he de decirte que no 
existe, por lo que nosotros sa- 
bemos, ninguna versión del 



(sigue) 




W ^ nuevo ) 



CON GARANTIA 

/VWHATW TRANSFB?SA 



VAMPIRE. Ayuda al audaz Guillermo a salir 
del castillo del Vampiro, sorteando murcié- 
lagos, fantasmas, etc. Un juego terrorífica- 
mente entretenido para que lo pases de mie- 
do. PVP.800Pts. 



e NUEVO 



COPY 

POR JOAQUIN LOPEZ 

Menú» por varita ñas - tras 
formatos ae coplas < simulación 
en blanco y nafro - copia 
sprltaa redoflne colores 
compatible con cualquier 
impresora matrlclal. 



CON GARANTIA 

/WíWnAN TRANSFERSA 



HARD CCPY. Para copiar pantallas. Tres 
formatos de copias, simulación porblancoy 
negro, copia sprítes, redefinic. de colores, 
compatible con todas las impresoras ma- 
tric.PVP. 2.500 Pts. 



6 



NVEN msxclub 




KRYPTON. La bataüa mas audaz de las gala- D BOOT. Sensacional juego de simulación QUINIELAS. El mas completo programa de SNAKE. Entretenido y muy divertido juego 

xias en cuatro pantallas y cuatro niveles de submarina en la que tienes que demostrar tu quinielas con estadística de la liga, de los en el que Snake procura comer unos nume- 

dificultad- Un juego cuya popularidad es cada pericia como capitán de un poderoso subma- aciertos, etc. e impresión de boletos. Acertar ros que la engordan. Tanto las murallas que 

vez mas grande entre los usuarios del MSX. riño de guerra. Panel de mandos, sonar, tor- no siempre es cuestión de suerte PVP 700 la rodean como su larga cola pueden ser 

PVP 500 Ptas. pedos, etc. PVP. 700 Ptas. Ptas. mortales para ella PVP 600 Ptas 




EL SECRETO DE LA PIRAMIDE. Atrevido STAR RUNNER. Conviértete en el audaz FLOPPY, El Preguntón Un verdadero desafio hjatj jtqx Un héroe solitario es lanzado a 

juego de aventuras a través de los misterios piloto interestelar y lucha a muerte, a a tus conocimientos de Geografía e Historia mí carrera a vida o muerte por un desierto 

y peligros que encierran los laberínticos pa- través del hiperespacio, contra las defen- española Floppy no perdona y te costara plagado de peligros Conseguir el combusti 

sillos de una pirámide egipcia. ¡Atrévete si sa s del tirano Daurus Dos pantallas y mucho superarlo PVP 1 000 Ptas ble para sobrevivir es su misión D-ezn.veles 

puedes! PVP. 700 Ptas. cinco niveles de dificultad. PVP. 1 000 pts de dificultad PVP 1 000 pts. 



Si quieres recibir por correo certificado estas cassettes garantizadas recorta o copia este boletín y envíalo hoy mismo: 

r~Ñombre y apellidos 
Dirección: 



»: ... 



| Población: 

□ KRYPTON Ptas. 500- 

I □ UBOOT Ptas. 700- 

I □ QUINIELAS Ptas. 700- 

□ HARDC0PY Ptas3«0- 

joastos de envió certificado por cada cassette .... 



CP Prov. 



□ SNAKE Ptas. 600- 

□ EL SECRETO DE LA PIRAMIDE Ptas. 700- 

□ STAR RUNNER Ptas. 1.000- 

Ptas. 70 -Remito talón bancario de Ptas 



... Tel.: 

□ FLOPPY PVP. 1.000 Ptas. 

□ MAD FOX PVP. 1.000 Ptas. 

□ VAMPIRO PVP. 800 Ptas 



a la orden de Manhattan Transfer, SA 



ATENCION: Los suscriptores tienen un descuento del 10% sobre el precio de cada cassette. 

IMPORTANTE: Indicar en el sobre MSX CLUB DE CASSETTES. ROCA I BATLLE, 10-12 BAJOS. 08023 BARCELONA 

Para evitar demoras en la entrega es imprescindible indicar nuestro nuevo código postal. 



NUESTRAS CASSETTES NO SE VENDEN EN QUIOSCOS. LA UNICA FORMA DE ADQUIRIRLAS ES SOLICITAMELAS 

A NUESTRA REDACCION. ¡NO SE ADMITE CONTRA REEMBOLSO! 



Input 



programa Match Day; pero 
existen otros programas de 
fútbol de gran calidad, como 
son «Fútbol» de Philips en for- 
mato cassette y con un precio 
de 1800 ptas y el «Fútbol» de 
Konami, en cartucho y con un 
precio que ronda las 5. 000 pts. 




SALIR AL DOS 

He realizado un programa 
en BASIC y código máquina y 



lo tengo grabado en disco. Se 
que es posible crear un fichero 
en el DOS que me ejecute el 
programa (no sé cómo hacer- 
lo) pero también querría que 
una vez finalizado el progra- 
ma me volviera al DOS. ¿Cómo 
hacerlo? 

Pedro Fuentes 
(Segovia) 



Me imagino que debes refe- 
rirte a un sistema para que 
cuando cargues el disco en el 
ordenador (al conectar el sis- 
tema) se ejecute el programa. 

Para ello, debes crear un fi- 
chero batch. Para queseautoe- 
jecute el programa debes lla- 
mar al fíchero AUTOE- 
XEC.BAT, pero procura sólo te- 
ner un autoexec por disco. 

Para que una vez ejecutado 
el programa vuelva la DOS, la 
solución es tan evidente que te 
hará enrojecer. Solo tienes que 
colocar la instrucción CALL 
SYSTEM donde deba finalizar 
el programa y automática- 
mente volverás al sistema ope- 
rativo. 



PIRATERIA 
CHAPUCERA: 

Hemos recibido numerosas 
cartas de usuarios que, con 
tremenda sorpresa por su par- 
te, nos comentan errores de 
carga en ciertos programas 
que hacen que el ordenador se 
quede colgado ( «ñipado» en el 
argot informático). En todos 
los casos que hemos estudiado 
esto se debe a una única causa. 
Los programas en que se nos 
comentan estos errores son 
copias PIRATAS de cartuchos. 
Estos cartuchos son pasados, 
de forma ilegal, del formato de 
cartucho al formato cinta por 
ciertos PIRATAS CHAPUCE- 
ROS que ni tan siquiera cono- 
cen el ordenador en que están 
trabajando. 

Debéis saber que los ordena- 
dores MSX, siendo compati- 
bles entre si a nivel de soft y 
hard no son iguales interna- 
mente. Evidentemente, las di- 
ferencias entre aparatos tan 
parecidos no pueden ser muy 
grandes. Asi todos utilizan los 
mismos chips, periféricos, 
etc.; pero no ocurre lo mismo 
con los ports de entrada y sali- 



Output 



da, ni con el tratamiento pagi- 
nado de la memoria, que se di- 
ferencian de un MSX a otro. 

Estos piratas de los que ha- 
blamos no tienen en cuenta es- 
tas diferencias, ya que no las 
conocen, ni saben cómo evitar- 
las, como hacen los progra- 
mas originales en cartucho. 

Por esta razón, un programa 
que carga perfectamente en el 
ordenador de un pirata puede 
no hacerlo en el vuestro. Ya 
hemos comentado en numero- 
sas ocasiones que con la pira- 
tería salen perdiendo los usua- 
rios. 

Aquellos a los que los pro- 
gramas no os funcionen, sien- 
do esta la causa (copias pira- 
tas de cartuchos ), no os pode- 
mos recomendar otra cosa 
sino que intentéis que el pirata 
os retorne el valor de los pro- 
gramas y compréis un origi- 
nal, con todas las garantías: y 
a todos aquellos que pensaseis 
caer en las garras de un pirata, 
pensáoslo dos veces. 

Una única recomendación: 
dirigios a los programas origi- 
nales pues son los únicos que 
os pueden dar una garantía de 
funcionamiento. 



ÍTlasier 




Computer^. 



CREADOR DE SOFTWARE * STANDARD Y A 
MEDIDA * PROGRAMAS MSX 



EN DISCO 



EN CINTA 



CONTABILIDAD + I.V.A 

Adaptada al Plan Gral. Contable. 

GESTION DE INVENTARIOS 

Control de almacén, entradas, salidas, por distin- 
tos conceptos, listados, etc. 

BASE DE DATOS 

Permite crear ficheros, opción de cargar, grabar, 
listar, seleccionar, consultar, totalizar, modificar, 
salida de etiquetas... 

STAT PAC (estadística) 

Cálculo estadístico básico: media varianza, des- 
viación con gráficos de funciones, regresiones li- 
neales, exponenciales, logarítmicas y polinómi- 
cas. 

I.V.A. 

Programa para el control del libro de compras, 
ventas v gastos, con relación a la declaración de 
I.V.A.. 



BASE DE DATOS 

Crea ficheros, los modifica, lista, selecciona, saca 
etiquetas, etc. 

TRADUCTOR DE IDIOMAS 

Permite la traducción entre dos idiomas, cuales- 
quiera que sean. 

ECUACIONES LINEALES 

Resuelve cualquier sistema de ecuaciones de has- 
ta 10 incógnitas. 

LOTO 

Lotería primitiva con estadísticas y reducidos. 

PARA APRENDER 



BASIC 



Este libro es el resultado de la experiencia en las 
aulas de su autor. Constituye una gran ayuda pa- 
ra el estudiante y el autodidacta. 






DE MAILING 



¡NOS APLICAMOS A SER UTILES! 

A TRAVES DE MSX ClUE DE MAIL1NC PUEDES ADOUIRIR 



BASIC TUTOR IDEALOGIC 



ADAPTADORES TARJETAS] 
INTELIGENTES 
BEE CARD Y SOFTCARD 



'•«He* 
ocup« 



••pació 



t/ 



Deja el manual de lado, inserta este breviario de 
BASIC en cartucho v olvídate. No ocupa memoria. 

PVP 3.500 pts. 



Note quedes 
al margen 
y disfruta 
de las tarjetas 
inteligentes. 
Lo último 
en soft. 
PVP 2.850 pts 



VJJJIIII,,... 



I 
I 



ENVIA HOY MISMO ESTE CUPON 

Nombre y apellidos 

Dirección 

Población CP Prov Tel 

□ Tutor Basic Ptas. 3.500 - □ Adaptador Bee Card Ptas. 2.850 - □ Adaptador Softcard Ptas. 2.850 - 

□ Sweet Acorn Ptas. 5.200- □ Backgammon Ras. 5.200- □ Shark Hunter Ptas. 5.200- 

□ Barn Stormer Ptas. 5.200- □ Chock'n Pop Ptas. 5.200- □ Le Mans 2 Ptas. 5.200 - 

Gastos de envío por cada producto 100 - pts. Remito talón bancario de pts. a la orden de Manhattan 

Transfer, S.A. Enviar a MSX CLUB de MAILING, Roca i Batlle 10-12 bajos - 08023 Barcelona. 



J 



PHILIPS NMS 8250 




La nueva generación de ordenadores MSX 2 lanzada por PHILIPS dentro de su gama NMS, conjuga óptimamente las 
prestaciones domésticas de los aparatos con las características más profesionales. Un claro exponente de esta gama 
NMS (New Media Systems) es el ordenador de segunda generáción que pasamos a comentar seguidamente: El PHI- 
LIPS NMS 8250. 




El NMS 8250 es algo más que un 
ordenador doméstico de la se- 
gunda generación. La idea que 
ha estado presente en todo momento 
para llevar a cabo el desarrollo de este 
equipo ha sido algo más que la preten- 
sión de crear un equipo más destinado a 
una línea de consumo doméstico. En 
realidad se trata de un completísimo sis- 
tema de posibilidades para la gestión in- 
tegrada: PHILIPS siempre está un paso 
más allá. 

ASPECTO DEL EQUIPO 

Ultimamente, todos los fabricantes de 
la norma esmeran de una manera extre- 
mada tanto el diseño de los aparatos 
como la construcción de teclados y aca- 
bado de los equipos. 



Pues bien, PHILIPS -a este nivel- no 
se limita a ser un fabricante más, sino 
que por derecho propio se sitúa a la ca- 
beza del resto de fabricantes de equipos 
del estándar; como queda bien patente, 
en el aparato que nos ocupa. 

El computador NMS 8250 está com- 
puesto -como viene siendo habitual- 
por dos módulos separados: Unidad 
central, donde se aloja la circuitería, la 
unidad de disco y conexiones de entra- 
da/salida y Teclado. 

UNIDAD CENTRAL Y TECLADO 

La unidad central, auténtico corazón 
del equipo, como queda dicho constitu- 
ye un módulo independiente donde se 
alojan (además del microprocesador y 
el resto de la circuitería) todas las ranu- 



ras y conexiones que hacen posible que 
el ordenador pueda comunicarse con el 
exterior. 

Esta unidad central es un elegante 
módulo rectangular de un color gris me- 
tálico de una altura aproximada de unos 
8 cm. donde los componentes externos 
se integran de una manera armónica y 
agradable. 

En su parte frontal están ubicados de 
izquierda a derecha los siguientes ele- 
mentos; 

- Botón de alimentación del sistema 
con el correspondiente LED indicador 
de operacón. 

-Espacio destinado a la incorpora- 
ción de una segunda unidad de diskette. 

- Boca de la unidad principal de dis- 
kette con el correspondiente indicador 
LED de funcionamiento. 

- En el extremo derecho, y bajo la 



10 



boca de la unidad de diskettes principal 
se encuentra el botón de RESET, con un 
tamaño suficientemente grande como 
para que el usuario no se vuelva loco in- 
tentando encontrarlo. 

En la parte lateral derecha de esta 
unidad central se encuentran los dos zó- 
calos para las ranuras de cartucho real- 
zadas en negro. 

La parte trasera contiene la mayoría 
de conexiones para periféricos. 

En la hilera superior, de izquierda a 
derecha se encuentran todas las rela- 
cionadas con Audio/Vídeo, que son las 
siguientes: 

-Conexión de antena de TV UHF 
PAL (canal 36). Inmediatamente a la de- 
recha de esta conexión se encuentra un 
pequeño orificio donde está alojado un 
pequeño tornillo que sirve para poder 
ajusfar la sintonía (previsión por lo de- 
más muy útil) 



ESPECIFICACIONES TECNICAS DEL KMS 8250 





- Conexión de luminancia. 

- Conectores Vídeo/Audio ¡n. 

- Conector RGB Vídeo/Audio out. 

En la hilera inferior, también de iz- 
quierda a derecha, hallamos las siguien- 
tes conexiones: 

- Toma de cassette. 

- Ports de joystick 1 y 2. 

- Salida para impresora Centronics. 

- Conector de teclado. 

El otro módulo del NMS 8250 es el te- 
clado, de tipo QWERTY, de 73 teclas er- 
gonómicas realzadas en gris. Además 
de las habituales teclas de función y de 
cursor, incorpora en su lado derecho so- 
bre los cursores un teclado numérico o 
separado, que como hemos repetido y 
repetiremos, agiliza enormemente la in- 
troducción de datos numéricos en apli- 
caciones de gestión. 



Unidad 

RAM 
ROM 

Unidad central de vfdeo 
Representación de 
video 



Colores 



Objetos móviles 
(sprites) 

Unidad central de audio 

Capacidad de sonido 
Reloj 



Z-80A, 3,7579545 MHz 

256 KB (128 KB vídeo, 128 KB usuario) 
64 KB (48 KB para MSX-2, 1 6 KB para control de FDD 
y BASIC) 



Texto: 80x24 ó 40 por 24; 

Caracterers gráficos: 512x212, 

256x212 pixel con entrelazado 

256 colores distintos, o 16 colores cualesquiera de 

un total de 51 2. 



Un máximo de 256, hasta 8 en cada línea 

S-3527 (compatible con el AY-3-8910 en MSX-1 ) 

8 octavas, acordes de 3 tonos 

Mes, semana, día, hora, minuto, segundo, con pila 

auxiliar 



TECLADO 
Modelo 


Teclado de recorrido completo, con un ángulo de 
ajuste de 5-12°, contorno cóncavo con teclas 
esculpidas 


Número de teclas 
Indicadores 


73 

Alimentación (rojo), mayúsculas (verde), FDD en 
ejecución (amarillo) 


CONEXIONES 



Compartimentos de ampliación MSX-2, en su parte superior y posterior. 
Interface para impresora Centronics (en paralelo) 

Monitor Euroconector (SCART) para RGB/CVBS, y conector 

DIN para CVBS/luminancia 
TV Conector RF (canal 36 de UHF) 

Otros conectores Lectograbadora de datos. Segunda unidad de discos 

(externa) 2 entradas/salidas para control manual, 
«ratón» o tableta gráfica 



UNIDAD DE DISCOS PARA FLOPPY DISK 



lo 3,5 pulgadas, simple cara y doble densidad 

idad de memoria 720 KB (formateada) p/discos 1 MB. 



AUMENTACION 

220 V ca, 50 hz; consumo 25 W 



CONDICIONES AMBIENTALES 



CARACTERISTICAS TECNICAS 

En cuanto a las características de ín- 
dole técnica de este aparato, hemos de 
decir que cumple con los requerimientos 
máximos en cuanto a memoria. 



Esto es, que la RAM del aparato es de 
128 Kb, incorporando asimismo una 
RAM de vídeo (VRAM) de 128 Kb más. 
La memoria ROM es a su vez de 64 Kb. 

Esta capacidad de memoria permite 
trabajar al equipo en 9 modos de panta- 



1 1 





lia (SCREEN O a SCREEN 8), que son la 
totalidad de modos previstos para la se- 
gunda generación mientras que aque- 
llos equipos que sólo disponen de una 
VRAM de 64 Kb sólo pueden trabajar de 
SCREEN a SCREEN 5. 

La memoria de vídeo de este equipo, 
lo faculta pues para trabajar en un am- 
plio ámbito que comprende desde el tra- 
bajo en modo de texto en 40 u 80 colum- 
nas hasta en un modo gráfico de 
512x212 puntos. 

La unidad de diskettes que incorpora 
este equipo es de doble cara/doble den- 
sidad, lo que faculta al aparato para tra- 
bajar con diskettes (de 3,5") de alta ca- 
pacidad, pudiendo gestionar hasta 720 
Kb de información una vez formateados 
(1 Mb sin formatear). 



GESTION INCORPORADA 

Hemos dicho en el encabezamiento 
de esta sección que el equipo que nos 
ocupa es un sistema integrado de posi- 
bilidades para la gestión. 

Junto con el equipo, se suministra un 
paquete de gestión que justifica sobra- 
damente lo dicho. Desde un único siste- 
ma, con el NMS 8250 nos es posible ac- 
ceder a un procesador de textos, un 
gestor de base de datos, una hoja de 
cálculo y un programa de tratamiento de 
gráficos; todo ello combinado con una 
agenda personal, un programa de plani- 
ficación de proyectos y una calculadora; 
en resumen, un completísimo paquete 
integrado de gestión que como queda 
patente tiene en cuenta absolutamente 



todos los detalles y que es capaz de so- 
lucionar todas las exigencias ya no sólo 
de un usuario doméstico, sino también 
las de un pequeño empresario. 

De hecho, el mayor atractivo de este 
paquete es la facilidad con la que el 
usuario puede manejar de forma inte- 
rada e interrelacionada programas que 
abitualmente vienen presentados de 
forma independiente, con lo que se evita 
-entre otros- el desagradable problema 
de tener que introducir dos veces el mis- 
mo dato, lo que -lógicamente- genera 
múltiples problemas de transcripción. 

CONCLUSIONES 

Como queda visto, este equipo de la 
segunda generación reúne todas las 
ventajas del estándar, y junto con el pa- 
quete integrado de gestión que incorpo- 
ra, el potentísimo BASIC MSX y los sis- 
temas operativos DISK BASIC y MSX 
DOS, este equipo se convierte en el 
ideal para todos aquellos usuarios que 
deseen introducirse en el amplísimo 
mundo de la informática de la mano de 
un equipo que les va a permitir potenciar 
todas sus capacidades creativas amén 
de posibilitarles disponer de una impor- 
tante y potente herramienta capaz de 
ayudarles a gestionar desde la econo- 
mía doméstica hasta la organización de 
su pequeña empresa. 

Además de la garantía que supone la 
marca PHILIPS, debe tenerse en cuenta 
la excelente relación entre la calidad y el 
precio de este producto, además de la 
eficacia y rapidez de su servicio técnico; 
es importante al adquirir un equipo tener 
en cuenta la asistencia post-venta, y te- 
nemos la seguridad de que PHILIPS 
nunca desatiende a sus clientes. 



9 h 



SERNñ 




EUROPA 



KONAMI TE PRESENTA EL EXITO MAS SONADO EN TODA EUROPA. 

ÜNA VEZ INTRODUCIDO EN EL CUARTEL GENERAL, ESCAPA DE LAS BOMBAS, MORTEROS 

Y DEMAS ATAQUES PARA LOGRAR LIBERAR A TUS COMPAÑEROS 

. PRESTA ATENCION A PROXIMAS NOTICIAS 



SERMA. C/. CARDENAL BELLUGA, 21. 28028 MADRID. TELS. 256 21 01/02 



12 



3.° GRAN 



PROGRAMA 



(89 



CONCURSO 



DEL AÑO 



CREA IT ENVIANOS TU PROGRAMA. 
HAY PREMIOS PARA TI Y PARA LOS QUE 
TE VOTEN. CADA MES PURIFICAREMOS 
MAS DE UN GANADOR QUE OPTARA 
UNA FABULOSA UNIDAD DE DISCO 



BASES 



1 - Podrán participar todos nuestros lec- 

tores cualquiera sea su edad, con uno 
o más programas escritos en BASIC 
MSX o código Máquina. 

2 - Los programas se clasificarán en tres 

categorías: 

A — Educativos 

B — Gestión 

C — Entretenimientos 

3 - Los programas, sin excepción, debe- 

rán ser remitidos grabados en casset- 
te virgen, debidamente protegida den- 
tro de su estuche plástico en el que se 
insertará el cupón-etiqueta que apa- 
rece en esta misma página, debida- 
mente rellenado. 



CORTAR. O r OTO COPIAR 

I 



4 - No entrarán en concurso aquellos 

programas plagiados o ya publicados 
en otras publicaciones nacionales o 
extranjeras. 

5 - Junto a los programas se incluirán 

en hoja aparte las instrucciones co- 
rrespondientes, detalle de las varia- 
bles, ampliaciones o mejoras posibles 
y todos aquellos comentarios que el 
autor considere de interés. 

6 - Todos los programas han de estar es- 

tructurados de modo claro, separando 
con REM los distintos apartados del 
mismo. 

PREMIOS 

7 - MSX EXTRA otorgará los siguientes 



1 




TITULO 



CATEGORIA 

PARA K 

INSTRUCCION DE CARGA 

AUTOR: 
EDAD: 

CALLE: N.° 

CIUDAD DP TEL.: 

N.° DE RECEPCION 



L 



premios: 
AL PROGRAMA MSX EXTRA DEL 
AÑO 

Una Unidad de disco 
valorada en más de 80.000 ptas. 

8 - Los programas seleccionados por 

nuestro Departamento de Programa- 
ción y publicados en cada número de 
nuestra revista recibirán los siguien- 
tes premios en metálico: 

Programa Educativo 10.000 pts. 

Programa de Gestión 10.000 pts. 

Programa de Entretenimiento 

6.000 pts. 

9 - MSX EXTRA se reserva el derecho de 

publicar mera de concurso aquellos 
programas de reducidas dimensiones 
que sean de interés, premiando a sus 
autores. 

FALLO Y JURADO 

10 - Nuestro Departamento de Programa- 

ción analizará todos los programas 
recibidos y hará la primera selección, 
de la que saldrán los programas que 
publiquemos en cada número de MSX 
EXTRA. 

11 - Los programas recibidos no se devol- 

verán, salvo que el autor lo requiera 
expresamente. 

12 - La elección del PROGRAMA MSX EX- 

TRA DEL AÑO se hará por votación de 
nuestros lectores a través de un bole- 
tín que se publicará en el mes de octu- 
bre de 1987. 

13 - El plazo de entrega de los programas 

finaliza el 15 de noviembre de 1987. 

14 - El fallo se dará a conocer en el núme- 

ro del mes de enero de 1988, entre- 
gándose los premios el mismo mes. 



REMITIRA: 
CONCURSO MSX 
EXTRA 

RocaiBatUe, 10-12 
bajos 

08023 Barcelona 



CALLVI 



VENTANAS DE TEXTO 
EN SCREEN 2 



Emplear la pantalla de gráficos para escribir textos suele implicar una falta de velocidad y de recursos a la hora de 
seleccionar los colores, así como la limitación que suponen los 32 caracteres por línea. Aquí encontrarás el método 

para escapar de las restricciones del BASIC en este aspecto. 



En ciertas aplicaciones es conve- 
niente escribir caracteres en 
SCREEN 2. Tal podría ser el 
caso de una base de datos que repre- 
sentara una ficha en la pantalla, un 
menú multicolor o, simplemente, un pro- 
grama de aventuras en el que fuera ne- 
cesario mostrar algún texto. El sistema 
clásico para imprimir caracteres en 
SCREEN 2 no es otro que abrir un fiche- 
ro, dando «GRP:» como distintivo de 
nombre. Una vez efectuada la instruc- 
ción OPEN correspondiente, sólo hay 
que mandar los mensajes con algo pa- 
recido a PRINT#1 (o el número de fi- 
chero abierto para el cometido). Los pro 
blemas que esto plantea son tres: la 
poca velocidad de impresión, la imposi- 
bilidad de seleccionar el color del fondo 
y la falta de las 40 columnas de 
SCREEN 0. 

ESCAPAR A LAS LIMITACIONES DEL 
BASIC 

El motivo de que se den las tres limita- 
ciones anteriores es en realidad válido 
para todas ellas: la lentitud del BASIC. 
En efecto, es posible escribir en 
SCREEN 2 con más de 32 columnas, di- 
bujando un carácter y moviendo el punto 
de referencia (LP) dos pixels a la izquier- 
da (usando PRESET, PSET, DRAW, 
etc.), aunque, a decir verdad, el tiempo 
que tardaría el BASIC en hacer todo 
esto sería larguísimo. Por otra parte, es- 
cribir texto con unos colores de primer 
plano y de fondo diferentes a los del res- 
to de la pantalla también es factible si se 
emplea una instrucción LINE combina- 
da con una orden COLOR. Sin embar- 
go, una vez más el tiempo empleado en 
el proceso haría imposible su utiliza- 
ción. 

A continuación encontrarás una pe- 
queña rutina que escribe un mensaje en 
la pantalla siguiendo el método clásico, 
consistente en abrir un fichero con 
OPEN. Te recomiendo que la teclees 
para hacerte una idea de la velocidad 
empleada en imprimir el mensaje 24 ve- 
ces (todas las líneas de la pantalla). Na- 
turalmente el texto aparecerá con el es- 
paciado característico de las 32 colum- 
nas por línea y el color del fondo será el 
mismo que el de f 



LISTADO 1 



10 ' BASIC 
20 SCREEN2 
30 PSET(0,0) 
40 OPENWASl 
50 TIME=0 

55 A$="HENSAJE DE PRUEBA" 

60 F0RX=0T023 

70 PRINTil.AI 

80 NEXT 

90 T=TIHE 

100 SCREEN0 

110 PRINT-TIEílPO-T/50's- 





42 COLUMNAS POR LINEA 

Pasemos ahora a describir una rutina 
capaz de abrir una «ventana» de texto 
en la pantalla gráfica. Con ella, podrás 
escapar de las 32 columnas por línea y 
llegar al máximo posible sin redefinir los 
caracteres, es decir, empleando un ma- 
triz de 6 x 8. Asimismo, el color de la tinta 
y del fondo podrá ser prefijado a volun- 
tad. Aquí tienes su listado en ASSEM- 
BLER. 



LISTADO 2 



10 CQ0R1: 


EQU 


IC350 


20 C00R2: 


EQU 


#C352 


30 COLOR: 


EQU 


IC354 


40 SBIT: 


EQU 


IC3S5 


50 posgrp: 


EQU 


IC357 


60 


ORG 


IC360 


70 


EX 


DE, HL 


80 


INC 


HL 


90 


LO 


E, (HL) 


100 


INC 


HL 


110 


LD 


0,(HL) 


120 


LO 


HL,(C00R1) 


130 


LO 


BC , (C00R2) 


UO 


LD 


A, (COLOR) 


150 ; 







170 rutven: 

180 

190 

200 

210 

220 

230 

240 

250 

260 

270 

280 

290 

300 

310 8000: 

320 

330 

340 

350 

360 ; 

370 ; 

380 RUTINC: 

390 

400 

410 

420 

430 

440 ; 

480 ; 

460 rutlin: 

470 
480 

490 

500 
510 
520 

530 booi: 
540 
550 
560 
570 
580 
590 
600 



PU5H AF 

EX AF.AF» 

POP AF 

EX AF, AF ' 

LO A,B 

SUB H 

LO B,A 

L0 A,C 

SUB L 

LD C,B 

LD B,A 

SLA L 

SLA L 

SLA L 

CALL RUTLIN 

INC H 

DEC C 

JR NZ,8000 
RET 



PUSH DE 
LO DE, 3 
AD0 HL, DE 
POP 0E 

LD (POSSRP).HL 
RET 



PUSH BC 
PUSH HL 



X0R 

LO 

LD 

LD 

LD 

LD 

QR 

JR 

INC 

CP 

JR 



A 

(SBIT), A 
C.A 

HL.OUTGRP 
(POSGRP) ,HL 
A,(0E) 
A- 

Z.ESC000 
DE 
13 

Z,ESC000 
CALL RUTCAR 
C 




14 




¿f^: rtm*^ i hender 
mt^I ícente ^ -a^Jiclaar. 
a* enturan, *o»*r"-o nu * 
fc«j ^íai« al v#cino ?i 
cfoncM «ncontr a^f ,^ 
incl. íjiri valoro*, 
lo* f-vafc> i fc-ar-ife*^^ f^Ür 

un-as cr i a turM iTl 
t i -^n^r-i a#oar^ i »*nc i a * 
a. E u a 1 x el acl . * 1 I i 
^1 Ultimo Pr a-iío m ar 

••^**"*»r* a CUV^ no i 



i a a« 

1 i ct*r* 



620 ESC000: 


LO A, 32 


630 


CALL RUTCAR 


640 


SLA B 


650 


SLA 6 


660 


SLA B 


670 


LO A,C 


680 


A00 A , A 


690 


AD0 A, A 


700 


A00 A,C 


710 


A00 A,C 


720 


SUB B 


730 


NEG 


740 


SRL A 


750 


SRL A 


760 


SRL A 


770 


PUSH BC 


780 


CALL RUTSPC 


790 


POP BC 


800 


LO C. B 


810 


LD B,A 


820 


POP HL 


830 


PUSH HL 


840 


PUSH 0E 


850 


LD D.H 


860 


LO E,L 


870 


LD HL,0UTGRP+8 


880 


PUSH BC 


890 


CALL I5C 


900 


POP BC 


910 


POP DE 


920 


POP HL 


960 


SET 5,H 


940 


EX AF.AF' 


950 


CALL 156 


960 


EX AF.AF' 


970 


RES 5,H 


980 


POP BC 


990 


RET 


1000 ; 




1010 ; 




1020 RUTSfC: 


0R A 


1030 


RET Z 


1040 


LD C,0 


1050 


LD HL,íP0S6RP) 


1060 


CALL RUTINC 


1070 8003: 


LD 6,8 


1080 B002: 


LD (HL) ,C 


1090 


INC HL 


1100 


DJNZ 8002 


1110 


DEC A 


1120 


JR NZ.B003 


1130 


RET 


1140 ; 




1150 ; 




1160 rutcar: 


PUSH HL 


1170 


PUSH DE 




1200 


LO 


HL,(P0S6RP) 


1210 


LD 


A.(SBIT) 


1220 


LO 


CA 


1230 


SLA 


C 


1240 


QR 


A 


1250 


CALL NZ, RUTINC 


1260 


CP 


3 


1270 


JR 


NZ,ESC01 


1280 


LD 


A.-l 


1290 ESCOl: 


INC 


A 


1300 


LD 


(SBIT),A 


1310 


PUSH HL 


1320 


POP 


IX 


1330 


POP 


HL 


1340 


LD 


UH 


1350 


LD 


M 


1360 


ADO 


HL.HL 


1370 


ADD 


HL , HL 


1380 


ADO 


HL.HL 


1390 


LD 


DE, 7103 


1400 


ADD 


HL , DE 


1410 


EX 


DE,HL 


1420 


LD 


6,8 


1430 B1000: 


LD 


A, (DE) 


1440 


LD 


L,A 


1450 


LD 


H,0 


1460 







1480 


PUSH 


BC 


1490 


INC 


C 


1500 bo: 


DEC 


C 


1510 


JR 


Z,EXIT 


1520 


SLA 


A 


1530 


SLA 


(IX+8) 


1540 


ADD 


HL, HL 


1550 


JR 


B0 


1560 EXIT: 


ANO 


(IX+0) 


1570 


0R 


H 


1580 


LD 


(IX*0>,A 


1590 


INC 


DE 


1600 


INC 


IX 


1610 


POP 


BC 


1620 


DJNZ 


B1000 


1630 


POP 


BC 


1640 


POP 


DE 


1650 


POP 


HL 


1660 


RET 




1670 0UTGRP: 


0EFS 


264 



FUNCIONAMIENTO DE LA RUTINA 

Resultaría muy largo explicar cada 
una de las instrucciones que componen 
la rutina para manejar ventanas. No 
obstante, en síntesis, su funcionamien- 
to es el siguiente: 



1 R 



CALLIV 



La rutina RUTVEN es el «tronco» del 
programa. Antes de llamarla hay que si- 
tuar el vértice superior izquierdo de la 
ventana que se va a abrir en e¡ registro 
HL, de forma parecida a la instrucción 
LOCATE de BASIC; esto es: en H la fila 
y en L la columna. Es importante señalar 
que las referidas coordenadas están 
calculadas para una pantalla dividida en 
32 cuadratines horizontales de 8x8 pi- 
xels por 24 cuadratines verticales. De 
esta forma, la máxima coordenada hori- 
zontal a especificar será la 31 . Quizá te 
estés preguntando por qué no hacer re- 
ferencia a la posición real (un número 
del al 41). El motivo no es otro que 
aprovechar el método seguido por el 
VDP para dividir la pantalla en SCREEN 
2, a fin de simplificar notablemente los 
cálculos a realizar por la rutina y, por ex- 
tensión, acortar su longitud y velocidad 
de proceso. 

Luego de colocar en HL el citado vérti- 
ce superior izquierdo, hay que poner en 
BC el extremo inferior derecho para deli- 
mitar perfectamente las dimensiones de 
la ventana. El formato a utilizar es idénti- 
co al citado para HL 

Resta sólo indicarle a la rutina qué 
mensaje ha de imprimir en la ventana y 
qué colores ha de emplear. El registro 
DE es el encargado de actuar como 
puntero para indicar el texto a visualizar 
y el acumulador se usa para indicar los 
colores del fondo y de la tinta, en el for- 
mato típico del VDP: un dígito para cada 
cosa. 

La rutina RUTLIN es la que gestiona 
una línea de pantalla, llamando a la ruti- 
na que dibuja cada carácter (RUTCAR) 
y completando el resto con espacios 
gracias a RUTSPC. 

Como ves el funcionamiento es sim- 
ple. La rutina principal (RUTVEN) llama 
a RUTLIN tantas veces como líneas ten- 
ga la ventana, y ésta, a su vez, completa 
la línea con llamadas a RUTCAR y 
RUTSPC. Por cierto, RUTLIN dejará de 
imprimir caracteres cuando encuentre 
un byte a cero. De esta forma, cualquier 
mensaje a escribir se dará por termina- 
do si lo acabamos con un cero, y el resto 
de la ventana será completado con es- 
pacios. Una cosa más: el código de re- 
torno de carro (o retorno de línea: 13) 
provocará que la línea en curso se dé 
por terminada y se empiece con la si- 
guiente. Los demás códigos de control 
del cursor no tienen significado alguno 
para la rutina y serán interpretados 
como caracteres gráficos. 

USO DE LA RUTINA DESDE EL BASIC 

Esta rutina puede ser llamada desde 
el BASIC, aunque será el programador 
en código máquina quien aproveche 
mejor sus ventajas. A tal efecto, se ha 
previsto que el mensaje a pasar se de- 
junto con la llamada, usando algo pare- 
cido a PRINT USR («mensaje»). Esto 



conlleva una limitación importante: el 
mensaje no puede ser mayor de 255 ca- 
racteres (los que admite una variable al- 
fanumérica). Una posible solución sería 
poner el texto en memoria con POKEs y 
buscar algún método de apuntar DE ha- 
cia el inicio de este «buffer», aunque, 
como ya he dicho, esto se hace mucho 
mejor desde el código máquina. 

Las coordenadas que delimitan la 
ventana se deben poner en la memoria 
usando POKE. El sistema a seguir es el 
siguiente: 

POKE &HC3D0, coordenada X del 
origen 

POKE &HC3D1, coordenada Y del 
origen 

POKE &HC3D2, coordenada X del fi- 
nal 

POKE &HC3D3, coordenada Y del fi- 
nal 

El color ha de ser especificado con: 
POKE &HC3D4, tinta*16+fondo. 
A continuación tienes el cargador de 
línea DATA que pondrá la rutina en me- 
moria a partir de la dirección &HC360. 








LISIADO 3 



10 F0RX=4HC360T04HC44F:READV$ 
20 POKEX.VAU'iH'+VDlSsS+PEEKU) 
30 NEXT 



40 IFS029277 ! THENBEEP: CLS: PRINT'HAY UN 
ERROR* 

50 DAT AEB , 23 , 5E , 23 , 56 , 2 A , 50 , C3 , ED , 4B , 52 
,C3,3A,54, C3.F5, 08, Fl, 08,78, 94,47, 79,95 
, 48,47, CB, 25, CB, 25, CB, 25, C0,92,C3, 24,00 
, 20, F9,C9, 05, 11, 08, 00,19,01, 22,57, C3.C9 
,C5,E5,AF,32,55,C3,4F,21,50,C4,22,57,C3 
,1A,B7 

60 DATA28,OB,13,FE,00,28,06,CO,FC,C3,OC 
,18iFl ( 3E,20,C0,FC l C3 f CB,20,CB l 20,CB l 20 
,79,87,87,81,81,90,E0,44,CB,3F,CB,3F,CB 
,3F,C5,CD,E8,C3,C1,48,47,E1,E5,05,54,50 
,21,58,C4,CS,CD,5C,00,C1,D1,E1,C8,EC,08 
,CD,56 

70 DATAOO,08,CB,AC,C1,C9,B7,C8,OE,00,2A 
,57,C3,CD,88,C3,06,08,7i,23,10,FC,30,20 
,F7,C9,E5,05,C5,F5,2A,57,C3,3A I 55,C3,4F 
,CB,21,B7,C4,88,C3,FE,03,20,02,3E,FF,3C 
,32,55,C3,E5,D0,E1,EI,6C,26,00,29,29,29 
,li,8F 

80 0ATA1B,19,EB,06,08,1A,6F,26,00,3E,FF 
,DD,75,O8,C5,0C,0D,28,O9,CB,27,DD,CB,08 
,26,29,18,F4,00,A6,00,B4,D0,77,00,13,00 
,23,C1,10,DC,C1,01,E1,C9 

PROBANDO LA RUTINA 

Para comprobar el correcto funciona- 
miento de la rutina, sólo has de teclear el 
siguiente programa. Cuando hagas 
RUN, comprobarás que el tiempo em- 
pleado por el BASIC (más de cinco se- 
gundos) se ve limitado a algo más de un 
segundo. Sin embargo, pensar que la 
rutina tarda esta «enormidad» en escri- 
bir el mensaje no sería justo. En realidad 
la mayor parte del tiempo se la lleva el 
bucle FOR/NEXT ayudado por los PO- 
KEs de las I íneas 1 20 y 1 30 y por la fun- 
ción USR, sin perder de vista al interrup, 
que no deja de pedirnos paso cada 1/50 



LISTADO 4 



10 ' CH 

20 SCREEN2 

30 DEFUSR=iHC360 

40 D=iHC350 

50 PQKED,0:P0KED+1,0 

60 POKED+2,14 :PQKE0*3,1 

70 PQKED+4.ÍHF1 

80 A*=' MENSAJE DE PRUEBA' 

90 TIHE=0 

100 FQRX=OT023 

110 PRINTUSR(A$+CHR$(0)) 

120 P0KED*1,PEEK(D*1)+1 

130 PQKED+3,PEEK(D+3)+l 

140 NEXT 

150 T=TIME 

160 SCREEN0 



ir 



segundos. La rutina emplea menos de 
cuatro décimas de segundo en comple- 
tar su cometido, y eso en el peor de los 
casos, es decir: cuando la ventana ocu- 
pa toda la pantalla. 

CONCLUSIONES 

La rutina tiene una longitud de 256 by- 
tes y emplea un buffer de 264 bytes para 



contener la línea que se está procesan- 
do en ese momento. Esto has de tenerlo 
en cuenta si piensas reubicarla con la 
ayuda de un ensamblador. 

Por otra parte, no se realizan ningún 
tipo de comprobaciones, lo que hace 
que un error al pasarle las coordenadas 
pueda «colgar» al ordenador. Otro posi- 
ble factor de riesgo es mandar un men- 
saje sin poner un byte de terminación 
(un cero), puesto que se tomarían ca- 



racteres de la memoria cuya aparición 
en pantalla sería indeseable. También 
puede crear trastorno el mandar un 
mensaje demasiado largo para la longi- 
tud de la línea fijada. En ese caso, el re- 
sultado puede ser inesperado, aunque 
este pequeño inconveniente se puede 
solucionar acortando la linea o interca- 
lando un retorno de carro (CHR$(13)). 

Por Joaquín López 



NUMEROS ATRASADOS • NUMEROS ATRASADOS 




WEl ~ *¿ií 
man j mon y 

mi 



MSX 2.' Edición 
N." 1,2,3,4 -450 PTAS 




MSX 2.' Edición MSX9 1 50 PTAS. 

i PTAS. 



MSX10 150 PTAS 




MSX 11 150 PTAS. 



MSX12.13 300 PTAS. 



MSX14 160 PTAS 



MSX15175 PTAS. 



9^ 



MSX16175 PTAS. 



MSX17 175 PTAS. 



MSX18 175 PTAS. 




MSX19.20 350 PTAS. 



TT 
\Á 



MSX21 175 PTAS. 





MSX CODIGO 
MAQUINA - 275 PTAS. 



MSX22 175 PTAS. 




MSX23 175 PTAS. 



MSX 24 175 PTAS. 



¡LA 1. a REVISTA DE MSX DE ESPAÑA! 



i 

PARA QUE NO TE QUEDES CON LA COLECCION INCOMPLETA SOLO TIENES QUE ENVIAR HOY 
MISMO EL BOLETIN DE PEDIDO CON TUS DATOS PERSONALES A «SUPER JUEGOS EXTRA MSX» 
-DPTO. SUSCRIPCIONES CA Roca i Batlle, 10-12, 08023 Barcelona. 

| Deseo recibir los números de SUPERJUEGOS EXTRA MSX 

para lo cual adjunto talón del Banco n° a la orden de Manhattan Transfer, SJL 



Nombre y apellidos 

Dirección 

Población 



DP Prov. 

~~ ~~ 



.. Tel.: 

•No se admite contrarreembolso» I 

■ ~ = ~ 1 - 1 



MSX DISK 




En este artículo analizamos las características más importantes del MSX DISK, lenguaje que nos permite trabajar 

con unidades de disco del sistema MSX. Por Ferrán Mas. 

El MSX DISK BASIC nos permite 
trabajar con la unidad de discos 
en los microordenadores del sis- 
tema MSX. Vamos a analizar algunas 
de sus principales características: 

Cada diskette es formateado en 80 
pistas (0-79) y cada pista a la vez en 9 
sectores (0-8), lo que da un total de 720 
sectores, si tenemos en cuenta que 
cada sector puede almacenar 51 2 bytes 
(0,5kb) de ello se deduce que la capaci- 
dad máxima del disco es de 360 kbytes. 

Las instrucciones DSKI$ y DSKO$ 
nos permiten acceder a la información 
de cualquier sector del disco. Dicha in- 
formación es almacenada en una zona 
de buffer de 512 bytes del ordenador 
cuya dirección de inicio está almacena- 
da en las posiciones &HF351-&HF352. 

La instrucción FILES nos permite la 
visualización del directorio del disco, 
para conocer qué programas o ficheros 
tenemos grabados. 

Organización del Directorio 

Cuando grabamos un fichero en el 
disco, lo primero que hace el MSX DISK 
BASIC es apuntar los datos de dicho fi- 
chero en un directorio, para que luego 
cuando lo queramos recuperar lo poda- 
mos hacer con facilidad. Dicho Directo- 
rio siempre empieza en el byte del sec- 
tor 5, y llega hasta el byte 51 1 del sector 
1 1 . Si tenemos en cuenta que para cada 
fichero son necesarios 32 bytes del Di- 
rectorio, de ello resulta 7 sectores * 512 
bytes = 3.584 bytes / 32 bytes * fichero 
= 112 ficheros, que es el número máxi- 
mo de ficheros que el directorio puede 
almacenar. Si sobrepasamos este nú- 
mero nos aparecerá el mensaje TOO 
MANY FILES. Veamos como se alma- 
cena la información en el ejemplo del Di- 
rectorio de un fichero: 

00 01 02 03 04 05 06 07 08 09 10 1 1 12 
131415 

77 83 88 67 76 85 66 32 66 65 00 00 00 
00 00 00 

MSXCLUB BAS 
1617 18 19 20 21 22 23 24 25 26 27 28 
29 30 31 

00 00 00 00 00 00 00 00 33 08 230 00 21 
02 00 00 

Posiciones: 

0-7 = Se almacena el nombre del fi- 
chero en código ASCII (siempre en ma- 
yúsculas), si el nombre contiene menos 
de 8 letras se almacenan blancos (códi- 
go ASCII = 32). En el ejemplo MSX 
CLUB. 

8-10 = Se almacenan las tres letras 
de la raíz del fichero (BAS,COM,SYS, 



etc.). En el ejemplo BAS. 

1 1 -23 = Esta zona está teóricamente 
reservada para funciones de control del 
fichero (almacenamiento de Password 
para su lectura, retención de la hora de 
grabación, visualización en el directorio, 
etc.), ya que en la práctica está casi 
completamente inutilizada por el MSX 
DISK que tan solo utiliza el byte 12 para 
mostrar o no el fichero al ejecutar FILES. 
Algunas versiones del MSX-DOS utili- 
zan más bytes de esta zona, como los 
bytes 22 y 23 que se utilizan para el al- 
macenamiento de la hora de grabación. 

24-25 = Estos 2 bytes contienen la fe- 
cha de grabación. Este dato sólo es utili- 
zado por el sistema operativo MSX- 
DOS pero no por el MSX DISK. La fecha 
base es el 1 -1-84 que corresponde a un 
almacenamiento 33 8. Si aumentamos 
el byte 24 nos va aumentando el día. 
Cuando hemos superado el valor, nos 
aumenta el mes y así sucesivamente. El 
sistema operativo ya calcula con la infor- 
mación de los 2 bytes el día correspon- 
diente. Así si al byte 24 le damos el valor 
65 la fecha resultante será el 1-2-84. 

26-27 = Estos 2 bytes nos indican en 
qué sector empieza la grabación del fi- 
chero. Los ficheros se empiezan a gra- 
bar en el sector 1 2, y, para localizar el 
sector donde empieza, basta aplicar la 
fórmula (n-2)*2+12, siendo n el valor 
del byte. Si la posición 26 contiene el va- 
lor 230 resultará (230-2)*2+ 12=468; 
significando que el fichero está grabado 



a partir del sector 468. 

28-29 = Estos dos bytes contienen la 
longitud del fichero. El primero es el de 
peso bajo y el segundo byte el de peso 
alto. Ejemplo si los valores son 21 y 2 la 
longitud será 21+2*256=533 bytes. 
Como sabéis, con 2 bytes no podremos 
pasar de 65536, cosa que tampoco es 
importante porque la capacidad del or- 
denador impide poder tener un fichero 
de este tamaño. 

30-31 = Son los bytes de separación: 
contienen siempre ceros. 

-C)- El final del Directorio viene de- 
terminado porque el primer byte del si- 
guiente fichero es un cero y no un carác- 
ter como sería de esperar. Por otro lado 
cuando se efectúa la eliminación de un 
fichero del disco, no se produce un bo- 
rrado de la información almacenada, 
sino que el MSX DISK coloca en el pri- 
mer byte del nombre del fichero el valor 
229, lo que provoca que cuando ejecu- 
temos la instrucción FILES se desco- 
nozca el fichero que empiece por 229. 

Observación del contenido de un 
disco 

Utilizando los conceptos expuestos 
anteriormente y con un pequeño progra- 
ma en BASIC podemos observar y pos- 
teriormente si deseamos modificar, el 
contenido del disco byte a byte. 
El programa es el siguiente: 



1Q 



MSXDISC 




Programa 1 A 

10 INPUT "indica sector (0-720)";S 

20 D$=DSKI$(1,S) 

30 A=PEEK (&HF351) + 256*PEEK 

(&HF352) 
40 FORX=ATOA+511 

50 PRINT PEEK(X) ;TAB(20) ;CHR$ 
(PEEK(X)) 

60 T=T+ 1 :IF T=20 THEN T=0:G$= 

INPUT$(1) 
70 NEXT X 

Explicación: Como la lectura se hace 
sector a sector en la línea 10, le indica- 
mos el sector que queremos observar 
(si deseamos el Directorio, recordad 
que empieza en el sector 5). La instruc- 
ción DSKI$, realiza la lectura de un sec- 
tor del disco. La sintaxis necesita una 
variable -en este caso D$- donde alma- 
cenar los datos: 1 indica el Drive del dis- 
co (1 =A,2=B,3=C,4=D) (si sólo dispo- 
nemos de una unidad de disco corres- 
ponderá el valor 1), y S especifica qué 
sector queremos leer. En la línea 30, 
calculamos en que dirección de la me- 
moria se habrá almacenado el sector 
que hemos leído. Como ya expuse al 
principio se almacena en la dirección 
&HF351-&HF352; como el segundo 
byte es el de peso alto, hemos de multi- 
plicarlo por 256 y sumarlo al de peso 
bajo. 

En el bucle que empieza en la línea 
40, lo que hacemos es leer byte a byte a 
partir de la dirección A (que antes he- 
mos calculado) los 512 bytes del sector. 
En la línea 50 efectuamos la impresión 
de los datos. La instrucción PEEK nos 
detecta el valor de la posición de memo- 
ria indicada, mientras que con el 
CHR$(PEEK(X)) hacemos que se nos 
escriba el código ASCII del valor, ya que 
si existe texto almacenado nos será muy 
fácil entender el contenido. De lo contra- 
rio, si los datos almacenados no son tex- 
tos, difícilmente entenderemos nada. La 
línea 60 tiene la función de detener, la 
escritura cada 20 caracteres para poder 
estudiar más detenidamente. Para con- 
tinuar será necesario pulsar una tecla 
cada vez. 

51 queremos, podemos añadir la línea 
35 PRINT B;TAB(10) ;:B=B+1 , que nos 
permitirá conocer que posición ocupa 
dentro del sector que estamos visuali- 
zando. 

Modificación del contenido de un 
disco 

Ya he avanzado anteriormente que a 
la vez que podemos visualizar el conte- 
nido de un disco, cuando localicemos al- 
gún byte que nos interese lo podemos 
modificar. Para ello, primero debemos 
utilizar el programa 1 A para detectar en 
que sector y en que posición se encuen- 
tra el byte que queremos modificar. Con 
el programa 1 A, si añadís la línea 35, os 
será posible identificar el número del 



byte, que corresponderá a la posición M. 

Una vez sepamos el sector (S) y la po- 
sición M, añadiremos al programa 1A 
las líneas: 

Extensión 1.B 

80 POKE A+M,C 
0- DSKO$1,S 

Explicación: Como la zona de memo- 
ria empieza en A (calculada en la línea 
30) deberemos añadirle M para coincidir 
con la posición a modificar. Con la ayu- 
da de la instrucción POKE, colocaremos 
el valor que deseemos, indicado por la 
variable C. Si queremos cambiar un tex- 
to, deberemos utilizar el código ASCII. 
Para modificar más de una posición a la 
vez podemos emplear varios POKE o un 
bucle que utilice variables. 

En la línea 90, con la ayuda de la ins- 
trucción DSKO$, grabamos los datos al- 
macenados, y que posteriormente he- 
mos modificado, otra vez en el disco. La 
instrucción DSKO$ tiene la sintaxis un 
poco diferente de su antónima DSKI$ y 
realiza un volcado de la memoria del 
sector del disco indicado por S. 1 sigue 
siendo el drive del Disco. 

Manipulación del Directorio 

Una vez hayáis practicado con el pro- 
grama 1 A y su extensión 1 B estaréis en 
condicione de realizar alguna de las si- 
guiente manipulaciones: 

- Colocar el final del fichero al princi- 
pio, haciendo que el primer byte del 
nombre sea 0, con lo que al hacer FILES 



no aparecería ningún fichero. 

- Modificar el nombre, raíz y d ía de un 
programa. 

- Hacer que un programa no pueda 
ser recuperado porque se le ha variado 
el sector de inicio del Directorio. 

- Esconder un fichero, colocando 229 
en el primer byte o 255 en el 12, con lo 
que al hacer FILES no aparecerá, pero 
posteriormente volviendo a colocar su 
valor nos volverá a aparecer. 

- Traducir un programa compilado, y 
que no tenemos acceso desde el BA- 
SIC. 

- Desbloquear un programa en códi- 
go máquina. 

Realización de un Directorio extenso 

La instrucción FILES del MSX DISK a di- 
ferencia del DIR del MSX-DOS no nos 
da información acerca de la longitud del 
fichero ni del día de su grabación. Te- 
niendo presente la estructura del Direc- 
torio descrita anteriormente, podemos 
diseñar, un programa que nos muestre 
la longitud y el día de grabación de cada 
fichero. 

El programa podría ser el siguiente: 

10Z=5:FF=0 

20 D$=DSKI$(1,Z) 

30 A=PEEK(&HF3510)+256* 

PEEK(&HF352) 
40 FOR X=A TO A+51 1 STEP 32 
50 IF PEEK(X)=0 THEN FF=1 :X= 

A+512:GOTO 250 
60 IF PEEK(X)=229 THEN GOTO 

250 
70 N$="" 
80 FORV=0TO7 








90 N$=N$+CHR$(PEEK(X+V)) 
100NEXTV 
110 N$ =N$+"." 
120 FOR V=8 TO 10 
130 N$=N$+CHR$(PEEK(X+V)) 
140NEXTV 

150 L=PEEK(X+28)+256*PEEK 

(X+29) 
160 AÑ=0 

170 R = PEEK(X+24) + 256*PEEK 

(X+25) 
180D=R-2080 
190M = INT(D/32) 
200 DT=D-(M*32) 
210MT=M+1 

220 IF MT>16 THEN AÑ = INT(MT/ 

16):MT=MT-(16*AÑ) 
230 AT=84+AÑ 

240 PRINT N$;TAB(11) ;L;TAB(18) 
;DT;TAB(20); "-";TAB(21) ;MT¡ 
TAB(23) ;AT 
250 NEXT X 

260 IFFF=0ORZ<11 THEN 
Z=Z+1:GOTO 20 

Explicación: El Directorio como recor- 
daréis empieza en el sector 5, por ello 
empezamos la lectura por este sector. A 
la vez inicializamos FF que utilizaremos 
como bandera. En la línea 40 iniciamos 
el bucle de lectura, teniendo presente 
que para cada fichero utiliza 32 bytes, 
de tal manera que cada paso de bucle 
se nos colocará en la primera posición 
del siguiente fichero. En la línea 50 lee- 
mos con ayuda del PEEK, el primer byte 
para ver si existe un cero, lo que indica- 
ría que sería el final del Directorio. En 
caso de ser así, utilizamos la variable FF 
como bandera y la colocamos a 1 para 
luego en la línea 250 poder detectar el fi- 



nal del Directorio y terminar. Si hemos 
llegado al final del Directorio conviene 
no continuar el bucle, para ello hacemos 
que la X supere el valor final con lo que 
al ejecutar el NEXT se detendrá el bucle. 

La línea 60 la podéis eliminar. Lo que 
ocurrirá en este caso es que también os 
listará los ficheros borrados que son 
aquéllos cuyo primer byte es el 229. En 
la línea 70 inicializamos la variable del 
nombre del fichero. El bucle que va de la 
80 a la 100 nos va leyendo las ocho pri- 
meras posiciones, que es donde se en- 
cuentra el nombre del fichero y nos 
transforma el valor a código ASCII para 
tener el texto. La línea 1 1 añade el pun- 
to. En el bucle de la 1 20 a la 1 40 leemos 
la raíz que juntamos al nombre del fiche- 
ro. En la línea 150 calculamos la longi- 
tud del fichero; dicha longitud recorda- 
réis se halla sobre dos bytes: el primer 
byte es el de peso bajo y el segundo el 
de peso alto, por ello lo multiplicamos 
por 256. 

De las líneas 1 60 a la 230 calculamos 
la fecha de grabación: en primer lugar 
inicializamos a el incremento de años, 
a continuación como la fecha se halla 
sobre 2 bytes en las posiciones 24 y 25 
calculamos dicho valor. El sistema para 
calcular la fecha toma como base el 1 -1 - 
84. que equivale a los valores 33 y 8 en 
los bytes 24 y 25 respectivamente. 
Como 33 y 8 equivale a 2081 , en la línea 
1 80 efectuamos la resta utilizando 2080 
que equivale al día inicial 0.R equivale a 
la diferencia de días, pero ahora será 
necesario traducirla a días, meses y 
años. El sistema calcula los meses so- 
bre la base de 32 días, por ello cada 32 
días incrementa un mes. Esto, lo calcu- 



lamos en la línea 190, en la 200 averi- 
guamos los días que sobran de la divi- 
sión y que no llegarán al mes entero; por 
ello DT serán los días del mes. Una vez 
sepamos los meses enteros, puede que 
hayan pasado años. Aquí el sistema cal- 
cula los años sobre la base de 16, pre- 
viamente hemos sumado 1 a los meses 
debido a que su valor inicial (1-1-84) es. 
uno. Aquí hacemos el mismo procedi- 
miento que para los días. Para terminar, 
como el valor inicial de los años es 84, lo 
tendremos que añadir a AÑ. 

Hemos de tener en cuenta que si mo- 
dificamos la información del disco a 
nuestro albedrío puede que obtenga- 
mos fechas incorrectas. 

En la línea 260. si no hemos llegado ni 
al final del Directorio ni al sector 12. in- 
crementa un sector y continúa el proce- 
so. 

Si alguno de los ficheros ha sido gra- 
bado utilizando alguna versión de MSX- 
DOS que tenga implementada la reten- 
ción horario, podríamos hacer también 
aparecer la misma en pantalla Para 
ello, deberíamos añadir las siguientes 
instrucciones: 

241 S = PEEK(X + 22) + 256*PEEK 
(X+23) 

242 MT=INT(S/32) 
243H = INT(MT/64) 
244M = MT-(H*64) 

245IFH = 0THENH-12 
246IFH>12THENH = H-12.T$="p" 

else t$="a" 
247 PRINT H;":' ;M;T$ 

Explicación Como ya hemos mencio- 
nado anteriormente, la retención noraria 
se hace sobre los bytes 22-23. Por ello, 
en primer lugar, calcularnos ?! valor nu- 
mérico de estos bytes. El sistema utiliza 
cada 32 unidades como 1 minuto; en 
consecuencia MT serán ios minutos. Al 
igual que con la fecha, tendremos que 
pasar los minutos totales a horas y mi- 
nutos. En la linea 243 calculamos las 
horas sabiendo que el sistema utiliza la 
base de 1 hora cada 64 minutos, en la lí- 
nea 244 calculamos los minutos que no 
llegan a la hora. 

En caso de que no haya transcurrido 
ninguna hora, inicializamos las horas a 
12, ya que la hora de referencia base 
son las 1 2:00a. A continuación observa- 
mos si hemos superado las 1 2 horas, ya 
que la representación la hacemos sobre 
1 2 horas. Por ello, en caso afirmativo, le 
restamos 12 y asignamos la p horaria. 
En caso contrario, le asignamos la a. En 
la línea 247 realizamos la escritura. Es 
conveniente añadir un ";" al final de la lí- 
nea 240 para que no salte de línea y nos 
quede ordenado. 

Directorio visible y Directorio 
enmascarado 

Con un pequeño programa podemos 
conseguir esconder cualquier fichero 
del Directorio a la vez que podemos con- 



21 



MSX DISC 




seguir que vuelva a aparecer. Para ello 
utilizamos el byte 1 1 del Directorio de 
cada fichero y convertimos su valor nor- 
mal en 255. 

10 INPUT'QUIERES 

DIRECTORIO 

VISIBLE (V) O 

ENMASCARADO (E)?";0$ 
20 IF 0$<>"V" ANDO$o"v" 

AND 0$<>"E" AND 0$<>"e" 

THEN GOTO 10 
30 IF 0$="V" OR 0$="v" THEN 

GOSUB1000 ELSE G=1 : 

GOSUB 170 
40 LOCATE 5,20:INPUT"INDICA. 

NOMBRE Y RAIZ DEL 

FICHERO"; N$ 
50 FOR L=1 TO LEN(N$) 
60IFMID$(N$,L,1)="." THEN 

P=L-1:ER=1:L=LEN(N$) 
70NEXTL 

80 IF ER=0 THEN PRINT 

"NOMBRE ERRONEO": 

GOTO 40 
90 M$=MID$(N$,1 ,P):R$=MID$ 

(N$,P+2,3) 
100 FOR K=P+1 TO 8:M$=M$+ 

" ":NEXT K 
110N$=M$+R$ 
120 G=0 
130 GOSUB 170 
140 CLS:INPUT"QUIERES 

REPETIR(S/N)?";0$ 
1 50 IF 0$<>"S" AND 0$<>"s" 

AND 0$<>"N" AND 0$<>"n" 

THEN GOTO 140 
160IFO$="S" OR 0$="s" 

THEN GOTO 10 ELSE END 
170 FF=0:Z=5 
180 D$=DSKI$(1,Z) 
1 90 A= PEEK(&HF351 ) + 256 

*PEEK (&HF352) 
200 FOR X=A TO A+51 1 STEP 32 
210 IF PEEK(X)=0THEN FF=1 :X= 

A+512:GOTO 320 
220 IFPEEK(X) =229 THEN GOTO 

320 

230IFG = 1 THEN IF 



PEEK(X+11)= 
255 THEN FOR M=0 TO 7: 
PRINT CHR$(PEEK(X+M)) ;: 
NEXT M:PRINT ".";:FORM 
=8TO10:PRINT CHR$(PEEK 
(X+M));:NEXTM: PRINT ELSE 
GOTO 320 
240 IN=0 

250 FOR LL=0TO 10 

260 IF CHR$(PEEK(X + LL))<> 

MID$(N$,LL+1,1)THEN 114=1: 

LL=11: 
270 NEXT LL 

280 IF IN= 1 THEN GOTO 320 
290 Fl = 1 

300 POKE X+ 1 1 ,255-PEEK(X+ 1 1 ) 

310FF=1:X=A+512 

320 NEXT X 

330IFFFO1 ORZ<11 THEN 

DSKO$1 ,Z:Z=Z+ 1 :GOTO 1 80 
340IFG = 1 THEN RETURN 
350 IFFI=0 THEN PRINT 

"FICHERO INEXISTENTE" 
360 RETURN 
1000 FILES 
1010 RETURN 

Explicación: Tenemos 2 posibilidades 
de Directorio a escoger: el de los fiche- 
ros visibles que visualizaremos con la 
sola ejecución de la instrucción FILES 
en la I ínea 1 000 o el de los ficheros no vi- 
sibles (enmascarados), los cuales para 
visualizar primero los tendremos que lo- 
calizar en el Directorio, cosa que hace- 
mos enviando a la rutina que empieza 
en la línea 1 30 y que como ya hemos ex- 
plicado su fundamento en i A nos permi- 
te analizar el Directorio. Como lo que 
queremos es localizar todos los ficheros 
enmascarados, utilizamos la variable G 
como bandera que modificamos a 1 , por 
ello en la línea 230 si G vale 1 mirare- 
mos si tiene el byte 1 1 s a 255 lo que sig- 
nificará que está enmascarado, y en 
consecuencia escribiremos el nombre 
que se hallará en los 10 primeros bytes, 
teniendo precaución de añadir el punto. 
Si el byte 1 1 no vale 255 nos vamos a la 



posición 320 que corresponde al final 
del bucle para buscar el siguiente fiche- 
ro. 

En la línea 40 introducimos el nombre 
y la raíz del fichero, y en el bucle de 50- 
70 buscamos en qué posición se en- 
cuentra el punto. Debido a que puede 
ser posible que el nombre del fichero no 
tenga 8 caracteres que son los que tiene 
reservados en el Directorio, P será el nú- 
mero de caracteres antes del punto, que 
obtenemos de restar 1 a la posición del 
punto. Una vez localizado el punto, colo- 
camos nuestra bandera de error ER a 1 
e igualamos L con la longitud del nom- 
bre para ganar tiempo y finalizar el bu- 
cle. Si al terminar el bucle la bandera de 
error tiene valor 0, significará que no ha 
pasado por la línea 60 y por consiguien- 
te, no habrá localizado el punto con lo 
que escribiremos que hay error y volve- 
remos a entrar el nombre. 

En la línea 90, separamos en M$ el 
nombre y en R$ la raíz, y en la línea 1 00 
añadimos blancos a M$ hasta totalizar 
las 8 posiciones para más tarde añadirle 
la raíz, con ello a la vez habremos elimi- 
nado el punto que no se utiliza en el Di- 
rectorio. 

Inicializamos la G a para no confun- 
dir con la opción de listar los ficheros en- 
mascarados y nos dirigimos a la subruti- 
na de análisis del Directorio que empie- 
za en la 1 70. En ella inicializamos z en el 
sector 5 y la variable de fin a 0, leemos el 
sector (1 80), calculamos la dirección ini- 
cial del buffer (1 90) y utilizamos un bucle 
que salta cada 32 (la longitud utilizada 
para cda fichero). Si el primer byte del fi- 
chero vale significa que hemos llegado 
al final del Directorio, por ello asignamos 
1 a FF e igualamos x al valor final para 
terminar el bucle y ganar tiempo. En la lí- 
nea 220 (si el primer byte vale 229) sig- 
nifica que el fichero ha sido borrado con 
KILL, y por tanto no lo consideramos 
como válido. Por ello saltamos al final 
del bucle para ir al siguiente fichero. En 
la línea 230 si G = 1 estamos en la situa- 
ción de que la rutina se utiliza para listar 
los ficheros escondidos. 

El bucle 250-270 lo utilizamos para lo- 
calizar si el fichero en cuestión es el que 
estamos buscando. Para ello nos vale- 
mos de la variable IN. Si IN vale 1 des- 
pués del bucle significará que el nombre 
no coincide y saltaremos al final del bu- 
cle mayor para continuar con el siguien- 
te fichero. 

Si después de todo el programa llega 
a la 280, significa que hemos localizado 
el fichero que nos interesa y a continua- 
ción lo que hacemos es invertir el valor 
del byte 1 1 . Si su valor es pasará a va- 
ler 255, y si es 255 pasara a valer 0. La 
variable Fl nos detecta que hemos en- 
contrado el fichero. En caso contrario en 
la línea 350 nos escribirá la no presen- 
cia del fichero en cuestión. 

En la línea 330, en caso de no haber 
llegado al final del Directorio grabamos 
los cambios, avanzamos un sector y vol- 
vemos a realizar el proceso. 



22 



CURSO DE INGLES 



The Gruneberg Linkword Language System es un sistema, para enseñanza de idiomas, más rápido y 
rácil que los métodos convencionales aplicados actualmente. 

En poco tiempo, máximo 20 horas, te enseñará un vocabulario de 400 palabras y adquirirás unas buenas 
nociones de gramática. Esto te permitirá entender y ser entendido en tus viajes a lugares de habla inglesa 
o en tus contactos con personas que se expresen en ese idioma. 

Por otra parte, el Sistema Plus Data, consigue que el ordenador se convierta en un perfecto profesor que 
te explicará, orientará y corregirá, manteniendo en todo momento un "diálogo" interactivo de resulta- 
dos sorprendentes. 







THE GRUNEBERG LINKWORD 
LANGUAGE SYSTEM 

plu/dot 




_L Tavlor "POPULAR 
COMPUTER WORLD": 

"Quedé francamente atónito al 
comprobar la efectividad de la 
smestión de imágenes como 
ZrnnUo de ayiula a la retención. 



-"PERSONAL COMPUTER 
WORLD": 

"Un suceso fuera de serie..." 



Sfc "COMPUTER 

l »tcrcsant c .. " ** es el ™«l 



plu/ 

Programas de EAO para EGB. 




ai 




Nombre 
Apellidos 



1 



Dirección 

Población 

D.P 

Forma de pago: 



Reembolso □ 



.Tino 

Giro postal [~ 



Envío talón [ 



□ Curso de Inglés 1.' parte. 10 lecciones Linkword. (Cinta) P.V.P. 6.900.-Ptas. 

□ Curso de Inglés 1/ parte. 10 lecciones Linkword. (3,5"-D¡sk) P.V.P. 7.900.-Ptas 

ENVIAR ESTE CUPON A: PLUS DATA, S.A. CA GRAN VIA, 661 pral. 08010-Barcelona. Tel. 246 02 02 



LA GIRO 



Nuestra revista publicará a partir del presente número una serie de artículos explicando la técnica de la 
GIROMATICA, nombre dado por nuestro colaborador J. M. Climent a un método original, que permite obtener vistosas 

figuras en la pantalla del ordenador de una forma automática. 
Esta técnica se recoge en un programa llamado « Giromatic » del que se dará un listado al final de la serie de artículos. 
Sin embargo, los programadores avispados, podrán ya desarrollar sus propios programas una vez conozcan el secreto 

de la técnica que se explicará ya a partir del próximo número. 





(Por J. M. Climent Parcet) 



L- Introducción 

Confieso que en programación 
hay errores fructíferos. La téc- 
nica y el programa que se descri- 
ben en las páginas que siguen, son con- 
secuencia de un error cometido en una 
línea de un programa, aunque el resul- 
tado fue tan asombroso para mí, que 
analizando el error y sus consecuen- 
cias, creo que he conseguido algo entre- 
tenido y que quizá para algunos sea de 
cierta utilidad. 

Intentaba yo hacer girar en la pantalla 
alrededor de su centro, a una elipse de- 
finida por puntos, utilizando las fórmulas 
de rotación de ejes de coordenadas. En 
la línea correspondiente a la definición 
del ángulo de giro Z, que debía ser el 
mismo para todos sus puntos, puse 
Z=Z+ 1 en lugar de Z= 1 . Cuando en la 
pantalla apareció la primera imagen, 
tuve una decepción pues no era la elipse 
que yo esperaba, sino un conjunto dis- 
perso de puntos en aparente desorden. 
Mientras reflexionaba sobre la causa de 
lo ue sucedía, apareció una figura en 
forma de un 3 acostado. Me di cuenta 
entonces de que el desorden no era tal y 
seguí esperando nuevas figuras antes 
de corregir mi error, las cuales fueron 
apareciendo sucesivamente, algunas 
de ellas con los puntos ordenados de tal 
modo que llegaban a formar imágenes 
de cierta belleza. Observé también que 
las figuras no se repetían ni aún des- 
pués de aparecer muchas de ellas. En 
ratos libres y largas noches he ido anali- 
zando lo que sucedió, intentado perfec- 
cionarlo y dándole formulación matemá- 
tica. 

Para designar de algún modo la técni- 
ca tratada aquí, consistente en hacer gi- 
rar figuras geométricas en la pantalla del 
ordenador, lo he hecho con el nombre 
de GIROMATICA. Me pregunto si al- 
guien ha tratado antes este tema que no 
tiene relación ni con la geometría fractal 
ni con la de la tortuga. La complejidad de 
una formulación a priori me hace dudar 
de ello. Sin embargo, si alguien tiene co- 
nocimiento de que este tema ha sido ya 
tratado con anterioridad, agradecería 
información al respecto. 



24 



2.- Bases de la Giromática 

2.1.- Giro de un punto alrededor de un 
centro en un ángulo constante. 

Sea un sistema de coordenadas OXY 
y un punto P definido en este sistema 
por las coordenadas x,y. 

Si el sistema de ejes gira un ángulo z, 
las coordenadas del punto P respecto al 
nuevo sistema de ejes oX'Y' vienen de- 
finidas por: 

x1=x.cosz -y.sen z 
y1=x.sen z -i-y.cos z 



y. 









y* 










p 
















X 





X 



Como que los ejes de la pantalla del 
ordenador son fijos, si representamos 
las coordenadas x1 ,y1 obtendremos la 
posición de un punto p1 , a la misma dis- 
tancia del centro y girado un ángulo z 
respecto al punto anterior. 

Si escribimos el siguiente programa: 



PROGRAMAN. 1 
10INPUT X.Y.Z 

20 CLS:COLOR 10,1,1 ¡SCREEN 2 
30 PSET(125+x,95+y) 
40 y1 =x.sin(z) +y.cos(z) 
50x1=x.cos(z) -y.sin(z) 
6.0x=x1:y=y1 
70 goto 30 

Introduciendo las coordenadas 50,50 
y el ángulo .5, el punto inicial irá girando 
en sentido contrario a las agujas del reloj 
alrededor del centro 125,95. Si quere- 
mos borrar los puntos anteriores, basta 
añadir al principio de la línea 30 CLS. En 




caso contrario los puntos sucesivos for- 
marán una circunferencia teórica y una 
elipse en la pantalla, debido a la despro- 
porción de los pixels de ambos ejes. Si 
se quiere conocer el ángulo total girado 
desde el principio, habrá que introducir 
en el programa una variable de acumu- 
lación, por ejemplo: 
65w=w+z 




Otra forma de expresar lo anterior, es 
mediante la representación del punto en 
coordenadas polares, en lugar de carte- 
sianas. 

Sea el polo y el eje X origen de ángu- 
los. La posición del punto se define por 
la distancia al polo PO=R y el ángulo A 
que forma PO con el eje OX. A la distan- 
cia R se le llama módulo y al ángulo A ar- 
gumento del punto P. Ahora bien, si gira- 
mos el punto P un ángulo z, el punto P1 
vendrá definido por el mismo módulo R y 
por el argumento A+z. Dado que el BA- 
SIC no permite la representación directa 
de puntos en coordenadas polares, hay 



que pasar a cartesianas para represen- 
tar P1. Así, las coordenadas del punto 
girado p1, serán: 
x1=R.cos(A+z) y1=R.sen(A+z) 
El programa 1 anterior se escribiría 
así: 

PROGRAMAN. 2 
10INPUTR;A;Z 

20 CLS:COLOR 10,1 ,1 :SCREEN 2 
30 x= R.COS (A):Y=R.SIN(A) 
40PSET(125 + x,95+y) 
50A=A+z 
60 GOTO 30 

En este programa, el ángulo A expre- 
sa en cada momento el ángulo total gira- 
do desde el inicio. Como puede obser- 
varse comparando con el programa n.° 
1 este segundo tiene que ser de más rá- 
pida ejecución. 

Tal como se han planteado ambos 
programas, estos se desarrollan indefi- 
nidamente, ya que esto es el objeto de la 
«giromática», aunque no hay dificultad 
alguna en poner condiciones para su fi- 
nalización. 

Lo explicado hasta ahora es suficien- 
temente conocido, ya que es la forma 
normal de definir una circunferencia por 
puntos. Sin embargo, hemos creído re- 
pasar esta cuestión antes de entrar en 
temas más complejos. 

En el programa anterior en lugar de la 
sentencia PSET puede usarse PUT 
SPRITE si previamente hemos definido 
éste y se tendrá entonces un sprite gi- 
rando alrededor de un punto. 



2E 



SMYO MPC-200 



Un nuevo modelo de la 
vieja generación. 



Quizás algunos de nuestros lectores -a la .vista de los últimos comentarios de aparatos aparecidos en esta sección- 
hayan dado en pensar que tanto los fabricantes como nosotros habíamos olvidado a los MSX de la primera generación. 
Nada más falso, por cierto. Contra viento y marea, SANYO ha lanzado recientemente al mercado español un nuevo 

modelo de MSX de primera generación: El SANYO MPC-200. 



Los ordenadores SANYO MSX, no 
son quizás los productos más cono- 
cidos de este importante fabrican- 
te japonés. 

Lo cierto es que SANYO no mantiene 
una política de presentación continua 
de novedades -al contrario que otros fa- 
bricantes-, pero no por ello pierde el 
tren ni descuida a sus usuarios sino que, 
al contrario, presenta novedades esco- 
gidas de un alto nivel de prestaciones y 
con una excelente relación entre calidad 
y precio. 

Fruto de esta sana y juiciosa política 



comercial es el ordenador MSX SANYO 
MPC-200, un claro exponente de hasta 
dónde se puede cuidar la calidad y el di- 
seño. 

DISEÑO ELEGANTE Y ORIGINAL 

Lo primero que llama la atención en 
este nuevo equipo de SANYO es lo re- 
volucionario de su diseño: 

No se trata del típico cajón rectangu- 
lar pensado única y exclusivamente 
como contenedor de la circuitería y del 
cableado, sin ninguna concesión a la es- 



tética o a la comodidad del usuario, sino 
que -al contrario- el diseño tiene un pa- 
pel capital en la concepción de este 
equipo. 

Este MPC-200, en lo externo, no tiene 
nada que ver con el modelo antecesor 
(el MPC-100). Ha redondeado y suavi- 
zado sus aristas y ha roto la rígida sime- 
tría del aparato anterior. 

El lado derecho del aparato se prolon- 
ga en sentido longitudinal (superior e in- 
teriormente) en dos lugares muy estra- 
tégicamente calculados: Bajo las teclas 
de cursor (para eliminar la incómoda 












26 



sensación de tener la mano «colgando» 
mientras se está operando con ellos (los 
lectores que hayan pasado una buena 
cantidad de horas manejando su orde- 
nador sabrán a que especie de incómo- 
da molestia nos estamos refiriendo). So- 
bre las ranuras de cartucho, como se ha 
dicho anteriormente, también se ha pro- 
longado el espacio; aprovechándose el 
lugar para colocar el led indicador de 
operación. 

A la izquierda de la ranura de cartu- 
cho, y aprovechando el mismo espacio, 
se ha colocado el útilísimo botón de RE- 
SET. 

TECLADO ESPAÑOL 

El teclado, del tipo QWERTY, tiene un 
diseño normalizado (DIN) es ergonómi- 
co y responde con absoluta fiabilidad a 
las pulsaciones. 

Como dijimos anteriormente, la cali- 
dad que ofrece SANYO queda patente 
incluso en los pequeños detalles, como 
es la inclusión en el teclado de la tecla ñ, 
lo que evita incómodas y extrañas com- 
binaciones de teclas a la hora de redac- 
tar cualquier escrito o incluso de teclear 
un programa. 



Ante la avalancha de equipos MSX de 
la segunda generación, algunos agore- 
ros preconizaban la extinción definitiva 
de los aparatos de primera generación. 

Una prueba palpable de que sus argu- 
mentos son absolutamente infundados 
es la aparición en el mercado de este mi- 
croordenador de primera generación 
presentado por SANYO en la presente 
edición de SONIMAG, donde obtuvo un 
importante éxito. 

SANYO demuestra con el lanzamien- 
to de este aparato que el concepto de 
norma es lo suficientemente versátil y 
amplio como para que puedan coexistir 
compartiendo su hegemonía aparatos 
que pertenezcan tanto a una como a 
otra generación, estando pensada la 
norma en su conjunto para satisfacer al 
espectro más amplio posible de usua- 
rios, que son -en definitiva- quienes en 
último lugar tienen que efectuar una 
evaluación del producto, decidiendo 
-en función de sus necesidades- qué 
generación de MSX es la más conve- 
niente para las tareas que pretendan 
realizar, y dentro de cada una de ellas 
cuál es el aparato que les ofrece las 
prestaciones solicitadas por el precio 
más justo. 

Es decir: el hecho de que coexistan 
dos generaciones de la misma norma no 
obliga forzosamente a adquirir la más 
novedosa, sino que amplía las posibili- 
dades de elección del usuario final. 

De todos modos, aquellos que se de- 
cidan por la adquisición de un SANYO 
MPC-200, habrán tomado una buena 
decisión. 





FICHA TECNICA 


Microprocesador 


Z80A 


Frecuencia dock 


3,58Mhz 


Memoria ROM 


32K 


Memoria RAM 


64K + 16K VRAM 


Texto 


40*24 




32*24 


Gráficos 


256*192 


Colores 


16 


Sprites 


32 


Sonido 


8 octavas 3 canales 


Teclado 


75 teclas Qwerty 


Cartucho 


2 conectores 


Conexiones directas 


2joysticks 




Impresora Centronics 




Video/ audio 




RF 


Lenguajes 




en la norma 


Basic, Ensamblador... todos los disponibles 


Distribuidor 


Sanyo informática, S.A. 




Paseo Valldaura 258 - 0801 6 Barcelona 



27 




o 




t(\Hl II i-i 











E R I A 



Programa de juego por José Menéndez Martínez 

Entretenido juego en que tendrás que cazar a la escurridiza bruja. Sus cuatro 
pantallas están cargadas de emoción. Aunque el listado es largo, vale la pena. 



PARA Í1.S.X. EXTRA 



10 IMMMI BRUJERIA 

20 '■ 

30 '■ CREADO POR: 

40 '■ 

50 '■ José Menéndez Martínez 
60 ■ 

70 '■ AVILES 
80 '■ 
90 '■ 

100 ' 

110 SCREEN 2,2:C0L0R l,l,l:DEFINT A-Z 
120 C10SE:0PEN "GRP: " ASI1 

130 GOTO 6210 

140 nwi PANTALLA 1 ■■■■■ 
150 PUT SPRITE 9,(37,Y1),0 
160 PUT SPRITE 10, (92,Y2) ,0 
170 PUT SPRITE ll,U47,Y3),0 
180 PUT SPRITE 12, (202, Y4) ,0 
190 PUT SPRITE 4, (70, 158), 
200 PUT SPRITE 5, (200, 158), 
210 PUT SPRITE 6, (130, 158), 
220 PUT SPRITE2,(X1,Y1),0 
230 PUT SPRITE0,(X,Y),0:PUT SPRITE 1,(X, 
Y+12),0:PUT SPRITE 3,(X,Y),0 
240 PUT SPRITE 18, (38, 80), 
250 PUT SPRITE 19, (200,80) ,0 
260 PUT SPRITE 21, (X, Y) ,0:PUT SPRITE 22, 
(X,Y),0:PUT SPRITE 23, (X,Y),0:PUT SPRITE 
24,(X,Y+8),0 

270 CLS:C0L0R 1 , 7, 7: CLS: COLOR ,,7 

280 CL0SE:0PEN "GRP:"ASfl 

290 LINE(0,70)-(256,135),3,BF 

300 LINE(0,135)-(256,192),11,BF 

310 B$='S4C12E20F10E10F2E2F2R8E2F2E2F10E 

6F16L92":DRAW"BM5,70XB$;":PAINT(9,69),12 

320 M$='C15E2F4E3FEF3E4F2H10G10':DRAWBH 

45,50XM$;':PAINT(55,44),15 

330 Pí='S4C2R7E7F3E6F4E2RFEF5R3E4F4E8F4E 

2F4R3E2F2E2F3E3F3E2FE4F4E2F4EF3E2FEF4BR2 

9E6F2EF3EF2E3RF4E10F3E4F5R3E3FRF4R2E4RE3 

RF2E3F3E2E4F5E3F5E4F6E2F5E3" 

340 DRAW , BH0,70XP$;' 

350 LINE(0,70)-(105,70),2 




360 LINE(165,70)-(255,70),2 
370 PAINT(30,69),2 
380 PAINT(254,69),2 
390 FOR E=l TO 15 

400 CIRCLE(200,45),8,11„,1.4:PAINT(200, 
45), 11 

410 S$="C11U14D14E12G12F12H12F12H12D14U1 
4G12E12L12R24L12H12F24':DRAWBH200,45XS$ 

420 A1$="S8C14UEUERERERERERFRFRFDFDFÜFDG 
D6LGLGL6LHLHLHLHUHUHL" 

430 A2$="S8C14UEUERJJEURERFRFRFDFD6DGL6LB 
L6LHLHUH" 

440 DRAH"BM30, 16XA1$; ":PAINT(33, 16) , 14 

450 DRAWBM60,24XA2$; , :PAINT(73,24),14 

460 DRAH'BM40,190XP1$;" 

470 LINE(143,70)-(235,126),2 

480 LINE(112,70)-(20,126),2 

490 LINE(149,70)-(255,108),2 

500 LINE(156,70)-(255,91),2 

510 LINE(106,70)-(0,108),2 

520 LINE(99,70)-(0,91),2 

530 LINE(88,70)-(0,78),2 

540 LINE(167,70)-(255,78),2 



550 C1$="S2C1U5E4U7L2E12F6G6H6F6L12R10D7 

E6U6B6G6R6U10L3E13F766H7F7L14R11D10E6U7D 

7G6R6U7L2E12F6G6H6F6L12R10D7E6U7D7F4G6H4 

F4D5E6U5D5G6L18U5L6D5L19 i 

560 DRAH"BH115,72XC1$;" 

570 PAINT(122,60),1 

580 PAINT(127,60),1 

590 PAINT(134,6i),l 

600 PSET(119,68),1 

610 PSET(119,67),1 

620 PSET(132,68),1 

630 PSET(132,67),1 

640 FOR 1=8 TO 250 STEP 8 

650 LINEÍI, 125)-ÍI+1, 135) , 1 , BF 

660 NEXT I 

670 LINE(0,127)-(255,127),1 
680 LINE(0,130)-(255,130),1 
690 LINE(0,133)-(255,133),1 
700 T1$="S6C9610R30H10L10" 
710 DRAM'BM25,133XT1$;' 
720 PAINT(26,135),9 
730 T2$="S6C7R10F10L10H10' 
740 DRAN , BH25,133XT2$;' 
750 PAINT(28,134),7 



3fe i UUI /C OC» '/O'- 



760 T3$=*S6C11B610R10U8D8R10' 

770 DRA«"B«25,133XT3$¡- 

780 C1RCLE(160,152),25,7,„.3¡PAINT(160, 

152) ,7:CIRCLE(160, 152) , 25, 1 , 0, 3. 14, ,3:CI 

RCLEÍ160, 152) , 18,7,0,3.14, .3 

790 CIRCLE(93,152),25,7,,,.3:PAINT(93,15 

2),7:CIRCLE(93,152),25,1,.5,2.64,.3 

800 CIRCLE (225, 152) , 25, 7, , , . 3: PAINT ( 225, 

152), 7:CIRCLE(225,152), 25,1, .5,2.64,. 3 

810 YH=180 

820 FOR 1=2 TO 255 STEP7 
830 LINE(I+2,YH)-(I,YH-3),2 
840 NEXT I 

850 FOR 1=5 TO 255 STEP7 
860 LINE(I-2,YH)-(I,YH-3),2 
870 NEXT I 

880 LINE(0,182)-(255,191),15,BF 
890 LINE(90,30)-(175,40),0,BF 
900 CLEAR B00:OPEN "6RP:" ASI1 

910 V=10:DRAWBM12,183':COLOR 1:PRINTI1, 
■V=';V 

920 T=40:DRAW'BH55,183':COLOR 1:PRINTI1, 
■T=";T 

930 PU=9: DRAH-BM1 10, 183" : COLOR 1:PRINTI1 
,'B=";PU 

940 LINE (150, 184) - (254, 1B9) , B, BF 

950 LINE(150,1B2)-(255,191),8,B 

960 P=l : X=0: Y=145: E=4: El=5: E2=22: E3=25:B 

=12:C=0:C1=0:W=1:Z=1:R=150:T=40:V=10:PU= 
9: GOTO 2040 

970 1 11 PANTALLA 2 

980 PUT SPRITE2, (XI, Yi) ,0 

990 PUT SPRITE0,(X,Y),0:PUT SPRITE 1,(X, 

Y*12),0:PUT SPRITE 3,(X,Y),0 

1000 CLSsCOLOR ll,ll,U:CLS:C0L0R ,,11 

1010 LINEÍ0, 18D-Í255, 191) , 15.BF 

1020 FOR 1=0 TO 150 STEP 10:LINE(0, I)-(l 

3,1),1:NEXT I : LINE ( 13, 0) - ( 13, 150), 1 

1030 X=23:Y=10 

1040 FOR 1=10 TO 23:LINE(13,Y)-(X,0),1:X 
=X+10;Y=Y+10¡NEXT I 

1050 DRAN-BH0, 171S4C5R22E31R29D4610E10U4 

G10D10R33E10U10R29D4610E10U4610D10R38E10 

U10R30D4G10E10U4G10D10R70" 

1060 LINE(13,150)-(163,0),5:LINE(0,150)- 

(13,150), 5:PAINT(255,0), 5 

1070 DRAWBH54, 143BU10C1 1R28D10EU10G2E2C 

11L28* 

1080 DRAH"BH0,164S4CUR22D10U10E31D10U10 
EL2G33L22' 

1090 DRAWBN116, 143S4C1 1U10R26D10EU1062E 
2C11L27' 

1100 DRAN , BH183,143S4C11U10R29D10EU10G2E 
2C11L27' 







1110 DRAWBH23, 0S4C ID 1 0BD 1 0D 1 0BO 1 0D1 0BD 1 
0D10BD10D10BD10D10BD10D10BU140BR106D10D1 
0BD10D10BD10D10BO10D10BD10D10BD10D10BD10 
BU120BR10D10BD10D10BD10D10BD10D10BO10D10 



BD10D10BD10BU110BR10" 

1120 DRAN , BH63,0S4C1D10BD10D10BD10D10BD1 



0D6BD54D10BU70BR13D7BD10D10BD20D10BU59BR 

10D8BD10D10BU25BR10D6BD10D10BU28BR10D8BD 

10D10BU28BR10D8BU8BR10D8- 

1130 LINE(90,l)-(70,21),6:LINE(90,l)-(90 

,36),6:LINE(70,21)-(70,56),6:LINE(70,56) 

-(90,36),6:PAINT(88,8),6:LINE(13,150>-(1 

63,0). 5 

1140 ' 

1150 LINE(70,50)-(255,55).1,BF:LINE(70.5 

5)-(83,58),l,BF:LINE(150,55)-(165,58),l, 

BF:LINE(70,50)-(255,36),8,BF:LINE(84,40) 

-(255,40),9:LINE(79,46)-(255,46),9 

1160 LINE(155,55)-(160,85),1,BF:LINE(160 

,85)-(175,67),l:LINE(176,67)-(176,55),l 

1170 LINE(90,l)-(90,36),l:LINE(70,21)-(7 

0. 56>,1:LINE(70,54)-(90,34),1:LINE(155,5 
4) -(173, 36), 1 

1180 X=87:Y=0:FOR 1=0 TO 10 

1190 X=X+3:Y=Y+3:CIRCLE(X,Y),2,1,,,1.4:N 
EXT I 

1200 X=66:Y=17:F0R 1=0 TO 10 

1210 X=X+3:Y=Y*3:CIRCLE(X,Y),2,1,,,1.4:N 
EXT I 

1220 V=V:DRAM"BÍ112,183-:C0L0R 1:PRINT#1. 
"V=';V 

1230 T=T:DRAW"BH55,1B3':C0L0R l:PRINTtl. 
"T=-;T 

1240 PU=9:DRAW"BM110, 183":C0L0R 1:PRINT* 

1, 'B=';PU 

1250 LINE(150,184)-(254,189),8,6F 

1260 LINE(150,182)-(254,191),8,B 

1270 X=0:Y=145:E=4:E1=5:E2=22:E3=25:B=28 

:C=0:C1=0:W=1:Z=1:P=2:R=150 

1280 Y1=25:X1=65:T=T:V=V:PU=9 

1290 PLAY"L6S8H3000N60VL6S8H3000N60V 
L6S8H3000N60" 
1300 FOR 1=1 TO 42 
1310 X=X+2.7 

1320 PUT SPRITE 0, (X,Y),1,E:PUT SPRITE 1 
,(X,Y+12),1,E1:PUT SPRITE 3,(X,Y),8,E3 
1330 Xl=Xl+4 

1340 PUT SPRITE 2, (XI, Yl), 1,B 
1350 SWAP E1,E2 
1360 NEXT I 
1370 Y=Y-3: Yl=25 
1380 GOTO 2150 



_ 







1390 tmm PANTALLA 3 MI 

1400 PUT SPRITE2, (X1,Y1),0 

1410 PUT SPRITE0,(X,Y),0:PUT SPRITE 1,(X 

,Y+12),0:PUT SPRITE 3,(X,Y).0 

1420 CLS: COLOR 1, 1, 1: CLS: COLOR 1,1,1 

1430 LINE(0,182)-(255,191),15,BF 

1440 X1=1:X2=254:Y=1 

1450 FOR 1=0 TO 17 

1460 LINE(X1,Y)-(X2,Y),11 

1470 Xl=Xl+5:X2=X2-5:Y=Y+4 

1480 NEXT I 

1490 X1=0:X2=255:Y=177 
1500 FOR 1=0 TO 17 
1510 LINE(X1,Y)-(X2,Y),6 
1520 Xl=Xl+5;X2=X2-5:Y=Y-4 
1530 NEXT I 

1540 LINE(20,50)-(20,130),15:LINE(70,80) 
-(70,100),15:LINE(20,50)-(70,80),15:LINE 
(20, 130Í-Í70, 100) , 15 

1550 LINE(235,50)-(235,130),15:LINE(185, 

80)-(185,100),15:LINE(235,50)-(185,80),l 

5:LINE(185.100)-!235,130),15 

1560 LINE(90,73)-(165,104),15,BF 

1570 PUT SPRITE 18, (38,80) ,15,20 

1580 PUT SPRITE 19, (200,80) , 15,20 

1590 V=V:DRAW"BM12,183":C0L0R hPRINTIl, 

"V=";V 

1600 T=T:DRAW"Bf155,183":C0L0R 1:PRINT*1, 
'T=';T 

1610 PU=11:DRAWB!U10,183":COLOR 1 rPRINT 
#1,"B=";PU 

1620 LINEÍ150, 184) -(255, 189) ,8,BF 

1630 PLAY"L6S8N3000N60VL6S8I13000N60V 

L6S8H3000N60" 

1640 GOTO 4250 

1650 PANTALLA 4 ■■■■ 

1660 PUT SPRITE25 ,(X+3,Y).0 

1670 PUT SPRITE 18, (XI, YO. 

1680 PUT SPRITE 19,(XD,YC),0 

1690 PUT SPRITE 2, (XI, Yl) ,0 

1700 PUT SPRITE 0,(X,Y),0:PUT SPRITE 1,( 

X,Y),0:PUT SPRITE 3, (X, Y) ,0:PUT SPRITE 2 

4,(X,Y*8),0 

1710 CLSsCOLOR 1, 1, 1: CLS: COLOR 1,1,1 
1720 LINE(1,0)-(256,5),11,BF 
1730 LINE(1,90)-(256,95),11,BF 
1740 LINE(1,175)-(256,180),11,BF 
1750 LINE(1,0)-(5,190),U,BF 
1760 LINE(251,0)-(256,190),11,BF 
1770 LINE(1,96)-(4,135),4,BF 
1780 LINE(1,51)-(5,89),4,BF 
1790 LINE(35,90)-(55,95),1,BF 
1800 LINE(90,90)-(110,95),1,BF 
1810 LINE(145,90)-(165,95),1,BF 



\ 



. ül r I - 




TKTii II U 



1820 UNE(200,90)-(220,95),1,BF 

1830 DRAWBM4, 135S4C 1 1 R5D5R5D5R5D5R5D5R5 

D5R5D5R5D5R5D4' 

1840 UNE (#, 182) - (255, 191 ) , 15, BF 

1850 LINE(240,83)-(246,89),15,BF 

1860 LINE (243. 83) - (243, 79) , 15: LINE (241 , 7 

9)-(245,79),15 

1870 V=V:DRAM"BH12,183":C0L0R 1:PRINTI1, 
"V=";V 

1880 LINE(50,184)-(256,189),8,BF 

1890 PLAY"L6S8H3000N60","L6S8H3000N60"," 

L6S8H3000N60" 

1900 PUT SPRITE 4,(70,1581,15,28 
1910 PUT SPRITE 5, (200, 158), 15, 15 
1920 PUT SPRITE 6, (130, 158) , 15,42 
1930 GOTO 5130 
1940 X=110:Y=156 

1950 PUT SPRITE 21, (X, Y) , 15, E: PUT SPRITE 

íMMMiiiiPUT mm ^.(K.Yi.fjii 

PUT SPRITE 24, (X,Y+B),3,E3 

1960 D=STICK(0) OR STICK(l) 

1970 IF D=0 THEN X=X: Y=Y: E=30: El=31 : E2=3 

1:E3=32 

1980 IF D=l THEN X=X:Y=Y:E=30:El=3i:E2=3 
1:E3=41 

1990 IF ü=3 THEN X=X+4: Y=Y:E=33:E1=34:E2 
= 35; E3 = 36 

2000 IF D=7 THEN X=X-4:Y=Y:E=37:E1=38:E2 
=39:E3=40 

2010 IF X=<1 THEN X=l 
2020 IF X=>245 THEN X=235 
2030 SOTO 1950 

2040 SOUND 0,255: S0UND2, 255: S0UND4, 255: S 

OUND3,16:SOUND9,16:SOUND10,16:SOUND7,248 

:SOUND6.15:SOUND12,2:SOUND13,10 

2050 Yl=INT(RND(l)tl00)+20 

2060 FOR 1=1 TO 40 

2070 X=X+3 

2080 PUT SPRITE 0, (X, Y) , 1 , E: PUT SPRITE 1 

,(X,Y+12),1,E1:PUT SPRITE 3,(X,Y),8,E3 

2090 Xl=Xl+6:Yl=Yl-l 

2100 PUT SPRITE 2,(X1,Y1),1,B 

2110 SHAP E1,E2 

2120 NEXT I 

2130 Y=Y-3 

2140 Y1=INT(RND(1)»50)*20 
2150 '■■ CIRCUITO PRINCIPAL ■■ 
2160 LINE(R,184)-(R+1,189),15,BF 
2170 IF R=220 OR R=230 OR R=240 OR R=245 
THEN PLAY"L6EEE" 
2180 IF R=>256 THEN 7150 
2190 R=R*1 

2200 ON STRIG GOSUB 2510,2510:STRI6(0) 
N:STRIB(1) ON 



2210 X1=X1+20:Y1=Y1 
2220 PUT SPRITE 2, (XI, Yl) , 1,B 
2230 IF P=l THEN 2250 
2240 IF P=2 THEN 2260 
2250 IF Xl>=230 THEN X1=0:6OTO 2270 
2260 IF Xl>=230 THEN Xl=65 
2270 PUT SPRITE 0, (X, Y) , 1 , E: PUT SPRITE 1 
, (X,Y+12) , 1,E1:PUT SPRITE 3, (X, Y) ,8,E33 
2280 IF Y>=145 THEN Y=145 
2290 IF Y=<117 THEN Y=U7 
12300 IF X< 172 AND X>130 AND Y<131 OR X< 
105 AND X>67 AND Y< 131 OR X<245 AND X>19 
6 AND Y<131 THEN 60T0 3650 
2310 PUT SPRITE 25, (X,Y) ,0, 13 
2320 IF X=>235 THEN X=235 
2330 IF X=<50 THEN X=50 
2340 D=STICK(0) OR STICK(l) 
2350 IF D=0 THEN X=X:Y=Y:E=0:E1=1 
2360 IF D=l THEN X=X:Y=Y-8:E=2:E1=3 
2370 IF D=2 AND W=l THEN X=X+8:Y=Y-8:E=4 
:E1=5:E3=25:N=2:G0T0 2150 
|23B0 IF D=2 AND W=2 THEN X=X+8: Y=Y-8:E=4 
:E1=22:E3=25:W=1:G0T0 2150 
2390 IF D=3 AND N=l THEN X=X+8: Y=Y:E=4:E 
1=5:E3=25:W=2:G0T0 2150 
2400 IF D=3 AND W=2 THEN X=X+8:Y=Y:E=4:E 
1=22: E3=25: W=l : BOTO 2150 
2410 IF D=4 AND W=l THEN X=X+B: Y=Y*8:E=4 
:Ei=5:E3=25:tl=2:60T0 2150 
2420 IF D=5 THEN X=X:Y=Y*8:E=21:E1=1:E3= 
27:60T0 2150 

2430 IF D=4 AND N=2 THEN X=X*8: Y=Y+8:E=4 

:El=22:E3=25:N=i:G0T0 2150 

2440 IF D=6 AND Z=l THEN X=X-8: Y=Y+8:E=6 

:E1=7:E3=26:Z=2:60T0 2150 

2450 IF D=6 AND 1=2 THEN X=X-8 : Y=Y+8 : E=6 

:E1=23:E3=26:Z=1:G0T0 2150 

2460 IF D=7 AND Z=l THEN X=X-8:Y=Y:E=6:E 

1=7:E3=26:Z=2:60T0 2150 

2470 IF D=7 AND Z=2 THEN X=X-8: Y=Y:E=6:E 

1=23:E3=26:Z=1:60T0 2150 

2480 IF D=8 AND Z=l THEN X=X-8:Y=Y-8:E=6 

:E1=7:E3=26:60T0 2150 

2490 IF D=8 AND Z=2 THEN X=X-8:Y=Y-8:E=6 

:E1=23:E3=26:Z=1:G0T0 2150 

2500 GOTO 2150 

2520 IF D=0 OR D=5 THEN RETURN 

2530 SOUND 0.170:SOUND1,15:SOUND2,0:SOUN 

D3, 13 : S0UND4, 255: S0UND5, 15: S0UND6, 20: SO 

UND7,207:SOUND8,16:SOUND9,16:SOUND10,16: 

SOUND11,15:SOUND12,15:SOUND13,0 

2540 X3=X 

2550 GOSUB 6100 




2560 FOR I=Y-22 TO -40 STEP-40 
2570 IF D=l THEN X3=X3 
2580 IF D=2 OR D=3 OR D=4 THEN X3=X3+26 
2590 IF D=6 OR D=7 OR D=8 THEN X3=X3-26 
2600 Dí=STICK(l) OR STICK(0) 
2610 PUT SPRITE 25, (X3+3, 1-1) ,15, 13 
2620 IF X3=<5 THEN 60TO 2870 
2630 IF X3>=250 THEN 2870 
2640 IF X3+3>Xl-8 AND X3+3<Xl+8 AND I-5< 
Yl THEN GOTO 2900 
2650 X1=X1+18: Y1=Y1 
2660 PUT SPRITE 2, (XI, Yl) , 1,B 
2670 IF P=l THEN 2690 
2680 IF P=2 THEN 2700 
2690 IF Xl>=230 THEN X1=0:6OTO 2710 
2700 IF XI >=230 THEN Xl=65 
2710 PUT SPRITE 0, (X,Y), 1,E:PUT SPRITE 1 
, (X,Y+12) , 1,E1:PUT SPRITE 3, (X,Y) ,B,E3 
2720 IF D1=0 THEN X=X:Y=Y:E=0:E1=1 
2730 IF Dl=l THEN X=X : Y=Y-8: E=2: E 1=3 
2740 IF Dl=2 THEN X=X+8: Y=Y-8:E=4:E1=5:E 
3=25 

2750 IF Dl=3 THEN X=X+8:Y=Y:E=4:E1=5:E3= 
25 

2760 IF Dl=4 THEN X=X+8:Y=Y+8:E=21:E1=5: 
E3=27 

2770 IF Dl=5 THEN X=X:Y=Y-8:E=21:E1=1:E3 
=27 

2780 IF Dl=6 THEN X=X-8:Y=Y+8:E=21:E1=1: 
E3=27 

2790 IF Dl=7 THEN X=X-8:Y=Y:E=6:E1=7:E3= 
26 

2800 IF Dl=8 THEN X=X-8:Y=Y-8:E=6:E1=7:E 
3=26 

2810 IF X=<50 THEN X=50 

2820 IF X>=235 THEN X=235 

2830 IF Y=< 117 THEN Y=117 

2840 IF Y>=145 THEN Y=145 

2850 IF X< 172 AND X>130 AND Y<131 OR X< 

105 AND X>67 AND Y< 131 OR X<245 AND X >19 




I KUÜKflI b u 



. 



6 AND Y<i3i THEN GOTO 3650 
28Ó0 NEX T I 

2870 PUT SPRITE25 , (X+3, Y) ,0 
2880 D=STIKC(0) OR STICKÜ) 
2890 RETURN 2210 
2900 'tm CAMBIO DE SPRITES ■■ 
2910 SOUND 2,0:SOUND 3,0:SOUND 4, 0: SOUND 
5, 255: SOUND 9,0: SOUND 1 , 50 : SOUND 1 1 , 16: S 
0UND12, 110: S0UND13, 9: SQUND7, fcBfil 1 1000 
2920 GOSUB 6160 
2930 C=C+1 

2940 IF P=l AND C=l THEN B=14 

2950 IF P=2 AND C=l THEN B=19 

2960 IF C=2 THEN B=17 

2970 IF C=3 THEN B=18 

2980 IF C=4 THEN B=19 

2990 IF C=5 THEN B=17 

3000 IF C=6 THEN B=18 

3010 IF C=7 THEN B=19 

3020 IF C=8 THEN B=20 

3030 IF C=9 THEN B=20 

3040 IF C=10 THEN 6180 

3050 FOR I=Y1 TO Y+50 STEP 20 

3060 PUT SPRITE2, 1X1,1), 1,B 

3070 IF P=l AND C=l AND I=>90 THEN 60T0 



3080 PUT SPRITE0,(X,Y),1,E:PUT SPRITE 1, 
(X,Y+12),1,E1:PUT SPRITE 3,(X,Y),8,E3 
3090 PUT SPRITE25,(X+3,Y),0 
3100 D=STICK(0) OR STICKÜ) 
3110 IF D=0 THEN X=X:Y=Y:E=0:E1=1 
3120 IF D=l THEN X=X:Y=Y-5:E=2:E1=3 
3130 IF D=2 THEN X=X+7: Y=Y-7:E=4:E1=5:E3 
=11 

3140 IF D=3 THEN X=X+7:Y=Y:E=4:E1=5:E3=2 
5 

3150 IF D=4 THEN X=X+7:Y=Y+7:E=21:E1=5:E 
3=27 

3160 IF D=5 THEN X=X: Y=Y+7: E=2 1 : El= I : E3= 
27 

3170 IF D=6 THEN X=X-7:Y=Y+7:E=21:E1=7:E 
3=27 

3180 IF D=7 THEN X=X-7:Y=Y:E=6:E1=7:E3=2 
6 

3190 IF D=8 THEN X=X-7:Y=Y-7:E=6:E1=7:E3 
=26 

3200 IF Y=<117 THEN Y=117 

3210 IF Y>=145 THEN Y=145 

3220 IF X=<50 THEN X=50 

3230 IF X>=235 THEN X=235 

3240 IF XDX-13 AND XKX+13 AND I>=Y THE 

N GOTO 4020 

3250 IF X<172 AND XM30 AND Y<131 OR X< 
105 AND X>67 AND Y<131 OR X<245 AND XM9 



[ 



6 AND Y<131 THEN GOTO 3650 
3260 NEXT I 
3270 IF C=9 THEN 6180 
3280 FOR 1=142 TO 20 STEP-20 
3290 D=STICK(0) OR STICK(l) 
3300 IF D=0 THEN X=X:Y=Y:E=0:E1=1 
3310 IF D=l THEN X=X: Y=Y-5:E=2:E1=3 
3320 IF D=2 OR D=3 THEN X=X+5: Y=Y:E=4:E1 
=5:E3=25 

3330 IF D=4 OR D=5 OR D=6 THEN X=X:Y=Y+5 
:E=21:E1=1:E3=27 

3340 IF D=7 OR D=8 THEN X=X-5: Y=Y:E=6:E1 
=7:E3=26 

3350 PUT SPRITE2, (XI, I) , 1, B 

3360 PUT SPRITE0, (X, Y) , 1,E:PUT SPRITE 1, 

(X,Y+12),1,E1:PUT SPRITE 3, (X, Y) ,8,E3 



3370 


PUT SPRITE25, ÍX+3,Y) ,0 


3380 


IF Y=< 117 THEN Y=117 


3390 


IF Y>=145 THEN Y=145 


3400 


IF X=< 


}0 THEN X=50 


3410 


IF X>=235 THEN X=235 


3420 


NEXT I 






3430 


IF 


C=2 


AND 


P=l THEN B=15 


3440 


IF 


C=3 


AND 


P=l THEN B=15 


3450 


IF 


C=4 


AND 


P=l THEN B=15 


3460 


IF 


C=5 


AND 


P=l THEN B=15 


3470 


IF 


C=6 


AND 


P=l THEN B=15 


3480 


IF 


C=7 


AND 


P=l THEN B=15 


3490 


IF 


C=8 


AND 


P=l THEN B=16 


3500 


IF 


C=l 


AND 


P=2 THEN B=2B 


3510 


IF 


C=2 


AND 


P=2 THEN B=28 


3520 


IF 


C=3 


AND 


P=2 THEN B=28 


3530 


IF 


C=4 


AND 


P=2 THEN B=28 


3540 


IF 


C=5 


AND 


P=2 THEN B=28 


3550 


IF 


C=6 


AND 


P=2 THEN B=28 


3560 


IF 


C=7 


AND 


P=2 THEN B=28 


3570 


IF 


C=8 


AND 


P=2 THEN B=43 


3580 


IF 


P=l 


THEN X1=0 


3590 


IF 


P=2 


THEN Xl=65 


3600 


PUT SPRITE2, (X1,Y1),1,B 


3610 


PUT SPRITE0, (X, Y) , 1,E:PUT SPRITE 1 



(X,Y+12),1,E1:PUT SPRITE 3,(X,Y),8,E3 

3620 PUT SPRITE25, (X+3, Y) ,0 

3630 IF P=l THEN 2140 

3640 IF P=2 THEN 2150 

3650 '■■ POZOS DE AGUA » 

3660 BEEP 

3670 IF C=9 THEN 6180 

3680 IF B=12 OR B=15 THEN B=B ELSE B=15 

3690 IF P=2 THEN B=28 

3700 GOSUB 6130 

3710 FOR U=l TO 3 

3720 PLAY\9o2b" 

1 3730 FOR 1=1 "TO 7 



3740 PUT SPRITE25, (X,Y+4),0 
3750 IF P=l THEN 3770 
3760 IF P=2 THEN 3780 
3770 IF Xl>=230 THEN X1=0:GOTO 3800 
3780 IF Xl>=230 THEN Xl=65 
3790 X1=X1+6:Y1=Y1 
3800 PUT SPRITE0. (X+3,Y+15) , 1,8:PUT SPRI 
TE 1,(X,Y+15),0,E1:PUTSPRITE 3, (X+l.Y+15 
),8,25 

3810 PUT SPRITE2, (X1,Y1) , 1,B 

3820 NEXT I 

3830 FOR 1=1 TO 7 

3840 IF D=6 OR D=7 OR D=8 THEN X=X 

3850 IF D=2 OR D=3 OR D=4 THEN X=X 

3860 PUT SPRITE25, ÍX+3, Y-l) ,0 

3870 PUT SPRITE0, ( X+3 , Y+ 15) , 1 . 9: PUT SPRI 

TE 1, (X, Y+15),0.E1:PUT SPRITE 3,(X,Y),0, 

E3 

3880 X1=X1+6:Y1=Y1 

3890 PUT SPRITE2, <X1,Y1 ), l.B 

3900 IF P=l THEN 3920 

3910 IF P=2 THEN 3930 

3920 IF Xl>=230 THEN X1=0:GOTO 3940 

3930 IF Xl)=230 THEN Xl=65 

3940 NEXT I 

3950 NEXT U 

3960 X=123:V=145:E=0:E1=1:X3=123: 1=145: X 
1=X1:Y1=Y1 

3970 PUT SPRITE 0, < X, Y) , 1 , E: PUT SPRITE 1 
,(X,Y+12),1,E1 

3980 PUT SPRITE25, (X3+3, 1-1) ,0 

3990 IF P=l THEN 2140 

4000 IF P=2 THEN 2150 

4010 'Oü MUERTE CAZADOR "M 

4020 BEEP:PLAY"16ed#eflgflge#ed»gf 

4030 GOSUB 6130 

4040 PUT SPRITE 0, (X, Y) ,0:PUT SPRITE 1,1 
X,Y+12),0:PUT SPRITE 3, (X, Y) ,0:PUT SPRIT 
E25, (X+8, Y-2) ,0 
4050 E1=11:E2=24 
4060 FORI=l TO 150 
4070 X=X+4: Y=Y-4 

4080 PUT SPRITE0, <X,Y) , 1, 10:PUT SPRITE 1 
, (X, Y+12) , 1,E1:PUT SPRITE2, (X+12,Y-6),1, 
B 

4090 IF X=>240 THEN 4130 
4100 SWAP E1,E2 
4110 FOR 1=0 TO 35:NEXT I 
4120 NEXT I 

4130 X=123:Y=145:E=0:E1=1 

4140 IF P=l THEN X1=0 

4150 IF P=2 THEN Xl=65 AND Yl=25 

4160 IF C=l OR C=2 OR C=3 OR C=4 OR C=5 

OR C=6 OR C=7 THEN B=15 




-OQPIOC 




4170 IF C=8 THEN B=U 
4180 IF P=2 THEN B=2B 
4190 IF C=9 THEN 6180 
4200 PUT SPRITE0, (X,Y) , 1,E:PUT SPRITE 1, 

(X,Y+12),1,E1:PUT SPRITE25, ÍX+3, Y-2) ,0, 1 

■» 

4210 PUT SPRITE25, (X+3,Y-2) ,0 
4220 IF P=l THEN 2140 
4230 IF P=2 THEN 2150 
4240 '"■ CIRCUITO 2 
4250 X=110:Y=156:E=30:E1=31:E2=31:E3=32: 
B=42:Z=0:R=150:XI=38:XD=200:YC=B0:PU=11 
4260 ON STRIG GOSUB 4470, 4470: STRI5 (0) G 
N:STRIG(1) ON 

4270 UNE (R, 1B4) - (R+l , 189) , 15, BF 
4280 IF R=220 OR R=230 OR R=240 OR R=245 
THEN PLAY"L6EEE" 
4290 IF R=>256 THEN GOTO 220 
4300 R=R+1 

4310 D=STICK(1) OR STICK(0) 
4320 X1=X1M0:Y1=88 
4330 PUT SPRITE 18, (XI, YO, 13, 20 
4340 PUT SPRITE 19, (XD, YO , 13,20 
4350 PUT SPRITE 2, (X1,Y1),1,B 
4360 IF Xl>=160 THEN Xl=68 
4370 IF X=<5 THEN X=5 
4380 IF X>=235 THEN X=235 
4390 PUT SPRITE 0, í X , Y) , 15, E: PUT SPRITE 
1,(X,Y),1,E1:PUT SPRITE 3, í X, Y) , 9, E2: PUT 
SPRITE 24, (X, Y+8) ,3,E3 
4400 D=STICK(0) OR STICK(l) 
4410 IF D=0 THEN X=X: Y=Y:E=30:E1=31:E2=3 
1: E3=32 

4420 IF D=l OR D=2 OR D=8 THEN X=X:Y=Y:E 

=30:E1=31:E2=31:E3=41 

4430 IF D=3 THEN X=X+7: Y=Y: E=33: El=34: E2 

=35:E3=36 

4440 IF D=7 THEN X=X-7: Y=Y: E=37: E1=38:E2 
=39:E3=40 
4450 GOTO 4260 
4460 '■■ DISPARO 

4470 IF D=0 OR D=3 OR D=4 OR D=5 OR D=6 
OR D=7 THEN RETURN 

4480 SOUND 0,170:SOUND1,15:SOUND2,0:SOUN 

D3, 13 : S0UND4, 255: S0UND5, 15: S0UND6, 20: SO 

UND7,207:SOUND8,16:SOUND9,16:SOUND10,16: 

SOUND 11,15: SOUND 12,15: SOUND1 3 , 

4490 GOSUB 6100 

4500 PUT SPRITE 18, (XI, YO, 

4510 PUT SPRITE 19,(XD,YO,0 

4520 X3=X 

4530 FOR I=Y-22 TO 55 STEP-30 
4540 IF D=l THEN X3=X3 



4550 IF D=2 OR D=3 THEN X3=X3+26 
4560 IF D=8 OR D=8 THEN X3=X3-26 
4570 D1=STICK(1) OR STICK (0) 
4580 PUT SPRITE 25, (X3+3, 1-1) , 15, 13 
4590 IF X3=<70 THEN 4730 
4600 IF X3>=160 THEN 4730 
4610 IF X3+3>Xl-8 AND X3+3<Xl+8 AND I-5< 
Yl THEN 4750 
4620 X1=X1+10:Y1=8B 
4630 PUT SPRITE 2, (XI, Yl) , 1,B 
4640 IF Xl>=160 THEN Xl=68 
4650 PUT SPRITE 0, (X, Y) , 15, E: PUT SPRITE 
1,(X,Y),1,E1:PUT SPRITE 3, (X, Y) ,9,E2: PUT 
SPRITE 24,(X,Y+8),3,E3 
4660 IF D1=0 THEN X=X: Y=Y:E=30;E1=31:E2= 
31:E3=32 

4670 IF Dl=l THEN X=X:Y=Y:E=30:E1=31:E2= 
31:E3=41 

4680 IF Dl=3 THEN X=X+5:Y=Y:E=33:E1=34:E 
2=35:E3=36 

4690 IF Dl=7 THEN X=X-5:Y=Y:E=37:E1=38:E 
2=39:E3=40 

4700 IF X=<5 THEN X=5 
4710 IF X>=235 THEN X=235 
4720 NEXT I 

4730 PUT SPRITE25 ,ÍX+3,Y),0 
4740 RETURN 

4750 SOUND 2,0:SOUND 3,0:SOUND 4,0:SOUND 
5,255:S0UND 9, 0: SOUND10, 50: SOUND1 1 , 16: S 
0UND12, 110: S0UND13, 9: S0UND7, &B001 1 1000 
4760 GOSUB 6160 
4770 Z=Z+1 

4780 IF Z=>10 THEN B=43 
4790 IF Z=ll THEN 1650 
4800 PUT SPRITE25 ,(X+3,Y),0 
4810 FOR I=Y1 TO Y+15 STEP 15 
4820 PUT SPRITE2, (X1,I),8,29 
4830 PUT SPRITE 0, ( X, Y) , 15, E: PUT SPRITE 
1, (X,Y),1,E1:PUT SPRITE 3, í X, Y) , 9, E2: PUT I 
SPRITE 24, (X,Y+8) ,3,E3 
4840 PUT SPRITE 18, (XI, YO, 11, 20 
4850 PUT SPRITE 19, (XD, YO, 11, 20 
4860 XI=XI+10:XD=XD-10:YC=YC+19 
4870 IF YC=>182 THEN YC=80:XI=38:XD=200 
4880 IF XDX-13 AND XKX+13 AND YO=YOR 
XD>X-13 AND XD<X+13 AND YO=Y THEN GOTO 
4990 

4890 D=STICK(1) OR STICK(0) 
4900 IF D=0 THEN X=X:Y=Y:E=30:E1=31:E2=3 
1:E3=32 

4910 IF D=l THEN X=X: Y=Y:E=30:E1=31:E2=3 
1:E3=41 

4920 IF D=3 THEN X=X*5:Y=Y:E=33:E1=34:E2 



=35:E3=36 

4930 IF D=7 THEN X=X-5:Y=Y:E=37:E1=38:E2 
=39:E3=40 

4940 IF XDX-13 AND XKX+13 AND D=Y THE 

N 60TO 4990 

4950 IF X=<5 THEN X=5 

4960 IF X>=235 THEN X=235 

4970 NEXT I : X 1=68: XI =38: XD=200: YC=80 

4980 GOTO 4260 

4990 PUT SPRITE2, ÍX1,I),0 

5000 PUT SPRITE 0,(X,Y),0:PUT SPRITE 1,( 

X,Y) ,0:PUT SPRITE 3, (X,Y),0:PUT SPRITE 2 

4,(X,Y+8),0:PUT SPRITE 18, (XI , YO , 0: PUT 

SPRITE 19,(XD,YO,0 

5010 GOSUB6130 

5020 ' ■■ MUERTE CAZADOR ■■■ 

5030 BEEP:PLAY'16edteflgflgetedlgf 

5040 FOR 1=0 TO 55 

5050 X1=X1+2:Y1=88 

5060 PUT SPRITE 2, (XI, Yl) , 1,B 

5070 IF Xl>=160 THEN Xl=68 

5080 XI=38:XD=200:YC=80 

5090 PUT SPRITE 18, (XI, YO , 15,20 

5100 PUT SPRITE 19, (XD, YO , 15, 20 

5110 NEXT I 

5120 GOTO 4260 

5130 '■■ CIRCUITO 3 ■ 

5140 R=50:V=V 

5150 X=5:Y=60:E=4:E1=5:E2=22:E3=25:W=1:Z 
=1 

5160 LINEíR, 184)-<R+1, 189) , 15,BF 
5170 IF R=220 OR R=230 OR R=240 OR R=245 
THEN PLAY-EEE" 

5180 IF R=>256 THEN GOTO 7150 
5190 R=R+1 

5200 IF STRIG (0)=-l OR STRIG(1)=-1 THEN 
GOTO 5430 

5210 PUT SPRITE 0, (X,Y), 15,E:PUT SPRITE 
1,(X,Y+12),12,E1:PUT SPRITE 3,(X,Y),8,E3 
5220 IF X=<1 THEN X=l 
5230 IF X=>230 THEN X=230 





JO 




JDQi~tQC 
II II i_í 



5240 IF D=5 AND X=>230 THEN X=230:BB=1:P 
LAY'V10bbb':LINE(240,83)-(246,89),8,BF 
5250 IF X=<5 AND BB=1 THEN 5830 
5260 IF X<45 AND X>30 AND Y>50 OR X<100 
AND X>85 AND Y>50 OR X<155 AND XM40 AN 
D Y>50 OR X<210 AND X>195 AND Y>50 THEN 
60T0 5630 

5270 PUT SPRITE 9, (37,Y1) , 15, 20: Yl=Yl+2 

5280 IF Yl=>50 THEN Yl=5 

5290 PUT SPRITE 10, (92, Y2) ,8,20:Y2=Y2+3 

5300 IF Y2=>50 THEN Y2=5 

5310 PUT SPRITE 11, (147,Y3),10,20:Y3=Y3+ 

4 

5320 IF Y3=>50 THEN Y3=5 

5330 PUT SPRITE 12, (202, Y4) , 13,20: Y4=Y4+ 

4 

5340 IF Y4=>50 THEN Y4=5 

5350 D=STICK(0) OR STICK(l) 

5360 IF D=0 THEN X=X:Y=Y 

5370 IF D=3 AND N=l THEN X=X+6: Y=Y:E=4:E 

1=5: E3=25:N=2: GOTO 5160 

5380 IF D=3 AND N=2 THEN X=X+6:Y=Y:E=4:E 

1=22: E3=25:N=1: GOTO 5160 

5390 IF D=7 AND Z=l THEN X=X-6: Y=Y:E=6:E 

1=7:E3=26:Z=2:60T0 5160 

5400 IF D=7 AND Z=2 THEN X=X-6:Y=Y:E=6:E 

1=23:E3=26:Z=1:G0T0 5160 

5410 GOTO 5160 

5420 ™ SALTO MM 

5430 FOR 1=0 TO 5 

5440 Y=Y-3 

5450 IF D=0 THEN X=X:Y=Y 

5460 IF D=3 THEN X=X+4: Y=Y:E=4:E1=22:E3= 

25 

5470 IF D=7 THÉN X=X-4: Y=Y:E=6:E1=23:E3= 
26 

5480 IF X=>230 THEN X=230 

5490 IF X<50 AND X>25 AND Y<Y1+15 OR X<1 

05 AND X>80 AND Y<Y2+15 OR X<160 AND X>1 

35 AND Y<Y3+15 OR X<215 AND XM90 AND Y< 

Y4+15 THEN GOTO 5630 

5500 PUT SPRITE 0, (X,Y) , 15,E:PUT SPRITE 

1,(X,Y+12),12,E1:PUT SPRITE 3,(X,Y),8,E3 

5510 PUT SPRITE 9, (37, Yl) , 15,20: Yl=Yl+2 

5520 IF Yl=>50 THEN Yl=l 

5530 PUT SPRITE 10, (92,Y2),8,20:Y2=Y2+3 

5540 IF Y2=>50 THEN Y2=l 

5550 PUT SPRITE 11, (147, Y3) , 10,20:Y3=Y3+ 

4 

5560 IF Y3=>50 THEN Y3=l 

5570 PUT SPRITE 12, (202, Y4) , 13,20: Y4=Y4+ 
4 

5580 IF Y4=>50 THEN Y4=l 



5590 NEXT I 
5600 Y=60 
5610 60TO 5160 

5620 MUERTE CAZADOR ■■" 
5630 PLAY'16edleftgftgefedtgf" 
5640 60SUB 6130 
5650 FOR 1=0 TO 15 

5660 Y=Y+6:X=X:BB=0:LINE(240,83)-(246,89 
),15,BF 

5670 PUT SPRITE 0, (X,Y) , 15,E:PUT SPRITE 

1,(X,Y+12),12,E1:PUT SPRITE 3,(X,Y),8,E3 

5680 PUT SPRITE 9, (37, Yl) , 15, 20: Yl=Yl+2 

5690 IF Yl=>50 THEN Yl=5 

5700 PUT SPRITE 10, (92, Y2) ,8,20:Y2=Y2*3 

5710 IF Y2=>50 THEN Y2=5 

5720 PUT SPRITE 11, (147, Y3) , 10,20: Y3=Y3+ 

4 

5730 IF Y3=>50 THEN Y3=5 

5740 PUT SPRITE 12, (202, Y4) , 13,20:Y4=Y4+ 

4 

5750 IF Y4=>50 THEN Y4=5 
5760 IF Y=>144 THEN 5780 
5770 NEXT I 
5780 FOR 1=0 TO 20 

5790 PUT SPRITE 0, (X,Y+18) , 15,8:PUT SPRI 
TE 1,(X,Y+12),0:PUT SPRITE 3,(X,Y),0 
5800 NEXT I 
5810 60T0 5150 

5820 HM MUERTE BRUJA HUI 

5830 SOUND 0,0:SOUND 1,5:S0UND 2,0:SOUND 

3, 13: S0UND4, 255: SOUND5, 15: SOUND 6, 30: SO 
UND 7, 0: SOUND 8, 16: S0UND9, 16: SOUND10, 16: 
S0UND1 1 , 0: S0UND12, 5: SOUND 13, 0: FOR 1=1 TO 

30:NEXT I:SOUND12,56:SOUND13,0 
5840 PUT SPRITE 0, (X,Y) ,0:PUT SPRITE 1,1 
X, Y+12) ,0:PUT SPRITE 3,(X,Y),0 
5850 LINE(55,90)-(200,95),1,BF 
5860 LINE (60, 1 10) - (95, 1 15) , 1 1 , BF: LINE ( 11 
5,100)-(145,105),U,BF:LINE(165,115)-(20 
0,120), 11, BF 

5870 FOR 1=0 TO 200: NEXT I 

5880 LINE(60,110)-(95,115),1,BF:LINE(115 

,100)-(145,105),l,BF:LINE(165,U5)-(200, 

120),1,BF 

5890 LINEÍ60, 130)-(95, 135) , 1 1 , BF : LINE ( 1 1 
5,120)-(145,125),ll,BF:LINE(165,130)-(20 
0, 135) ,11, BF: FOR 1=0 TO 200:NEXT I 
5900 LINE(60,130)-(95,135),1,BF:LINE(115 
,120)-(145,125),l,BF:LINE(165,130)-(200, 
135) , 1,BF 

5910 LINE(45,170)-(80,175),11,BF:LINE(11 

5,170)-(145,175),11,BF:LINE(175,170)-(21 
0,175), 11, BF 







5920 LINEÍ20, 120)-(70, 165) , 1 , BF 
5930 PUT SPRITE 4,(70,1581,0 
5940 PUT SPRITE 5,(220,1581,15,16 
5950 PUT SPRITE 6,(148,1581,15,43 
5960 PUT SPRITE 9,(10,751,15,20 
5970 PUT SPRITE 10,(85,1601,8,20 
5980 PUT SPRITE 11,(220,751,10,20 
5990 PUT SPRITE 12, (220, Y4) ,0 
FOR 1=0 TO 200:NEXT I 

6020 BEEP: PLAY"L6C-FIDICID#FIGIA#FIDtFiE 
FFiGiAIGICt" 

6030 DRAN'BH75, 40': COLOR 15:PRINT#1. ■ ¡ ¡¡ 
BRAVO !!!' 

6040 DRAWBM2B,80":COLOR 15: PRXNTil, "Par 
a repetir la aventura' 
6050 DRAW-BM78, 120":COLOR 15: PRINTil , a PU 
LSA UNA TECLA" 

6060 T=T: DRAWBM55, 183" : COLOR 1:PRINT«1. 
'T=';T 

6070 EÍ=INKEY$ 

6080 IF E$=' M THEN 6070 ELSE 140 

6090 '■«■ PUNTUACION «I 

6100 T=M:LINE(70,182)-(95,191),15,BF:D 

RAW-BM69, 183":C0L0R l:PRINTfl,T 

6110 IF T=0 THEN 7150 

6120 RETURN 

6130 V=V-1:LINE(27,182)-(52,191),15,BF:D 
RAWBM25, 183-:CGL0R l:PRINTtl,V 
6140 IF V=0 THEN 7150 
6150 RETURN 

6160 PU=PU-1:LINE(123,182)-(149,191),15, 

BF:DRAW"BM124,183':C0L0R 1:PRINTI1,PU 

6170 RETURN 

6180 IF P=l THEN 970 

6190 IF P=2 THEN 1390 

6200 IF P=3 THEN 1710 

6210 'MM PRESENTACION ■■■■ 

6220 CLS: COLOR 1,1,1: BEEP: PLAY"L6S8f1300N 

50" 

6230 B1$="S4C6U40E4R20D18G4U18L20R20E464 
D18L10D4R10E4L10G4E4R10D18G4U18D18L20":D 
RAW"B!122,70XBl$; n :B2$='S4C6U10R10D10L10E 
4U6D6R6":DRAM'BH27,45XB2$;":DRAH , BH27,65 
XB2$;":PAINT(25,69),6 
6240 R$='S4C6U40E4R20D18G4U18E4G4L20R20D 
18L10D4R10E4L10G4E4R10D1864U1BD18L5U13L1 
0D13L5R5E4U9" : DRAN"BH54,70XR$; " : DRAWBH5 
9,45XB2$;":PAINT(55,69),6 
6250 U$='S4C6U40E4R5D35R6D4L10U35L5R5E4D 
35R6U31E4R5D40G4U40E464L5R5D40L20 , :DRAM' 
BM 84,70XU$; , :PAINT(85,69),6 
6260 J$="S4C6U10E4R5D5R6D4L10E464U5L5R5E 




? 




m*Jh Ei o mi OOMOC 



4D5R6U31E4R5G4L5R5D40E4U40D4064L20" : DRAM 

■BH1 12, 7IX Jf ; a : PAINT ( 1 13, 69) , 6 

6270 E$=-S4C6U40E4R20D5G4U5E4G4L20R20D5L 

15D13E4U9D9G4R1 1E4L1 1R1 1DS64U5DSL1 1D12E4 

U8D8R15G4L15R15D5E4U5D5G4L20-:DRAW"BM142 

,70XE$;-:PAINT(143,69),6 

6280 DRAW-BM172,70XR$;":DRAWBM177,45XB2 

$;':PAINT(173,69),6 

6290 I$='S4C6U40E4R5G4L5R5D40L5R5E4U40": 

DRAW"BH202,70XI$;":PAINT(203,69),6 

6300 A$='S4C6U40E4R20G4L20R20D40E4U40D40 

64L5U20L10D20L5R5E4U16-:DRA«"BM218,70XA$ 

; , :DRAN , BI1223,45XB2$; , :PAINT(222,69),6 

6310 PLAY" V10L 14EFGEFGEFGDEFGEEEEGFG6EFC 

DEEFGEFEDEF6EEFGEFGCCC- 

6320 P$='S4C12R4E11F3R2E7F4E2R1F1E1F6R3E 

4F7E12F9E2F6R3E4F15E6F2R3E3F2E1F4E10R2E1 

F3E2F2E1F3E1F2E3R1F4E6F3E4F8E3F1R1F4E6R1 

E3R1F2E3F3E2E7F2E3F6E1F1E1F1E1F1R1E7F3E3 

F5E1R10" 

6330 DRAW-B«0,100XP$;" 

6340 LINE(0, 110)-(255, 110) , 12 

6350 PAINK0, 109) , 12 

6360 LINE(0,110)-(255,191),11,BF 

6370 DRAWBH0, 1B5XL$; " 

6380 L$="C1R21BU20R15L35BU15R45BU12R9L54 

BU10R61BU7R5L66BU6R69BU5R5L73' 

6390 DRAWBM0, 1B5XLS; " 

6400 L1$="C1L21BU20L15R35BU15L45BU12L9R5 

4BU10L61BU7L5R66BU6L69BU5L5R73" 

6410 DRAW"BM255, 185XL1S; " 

6420 LINE(17, 191) - (75, 110) , 1 

6430 LINE(238,191)-(180,110),1 

6440 PSETÍ86, 118) ,4:PRINT#1, "CREADO POR: 
■ 

6450 PSET (87, 118) , 4: PRINT#1 , "CREADO POR" 
6460 PSET (74, 138) , 4: PRINTt 1 , " José Menénd 
ez-:PSET(75, 138) ,4: PRINTt 1 , • José Menénde 
z" 

6470 PUT SPRITE 2, (112, 75), 15, 15 
6480 PSEK38, 170) , 4: PRINTt 1 , (Un iOiento 
por favor)" 
6490 ■■■■ SPRITES 
6500 FOR N=0 TO 43:A$=" 
6510 FOR 1=1 TO 32: READ D: A$=A$+CHR$ (D) : 
NEXT I 

6520 SPRITE$(N)=A$:NEXT N 

6530 LINE(38,170)-(210,185),11,BF 

6540 PUT SPRITE 2, (112, 75), 

6550 BEEP:PSET(42,170):PRINTIl,-¿Instruc 

ciones? (s/n) 

6560 K$=INPUT$(1) 

6570 IF K$="N" OR Kf=V THEN 140 
6580 IF K$='S" OR K%='s a THEN 7050 
6590 IF K$-" "THEN 6560 



6600 DATAS —m 

6610 DATA 0,0,1,1,1,7,3,3,131,65,45,30,3 

1,31,31,15,0,0,0,192,192,240,224,224,224 

,192,240,248,124,182,222,238 

6620 DATA 0,0,0,0,15,10,7,7,7,6,14,12,12 

,30,12,28,0,0,0,0,248,168,240,240,112,48 

,56,24,24,60,24,28 

6630 DATA 0,0,0,1,1,7,3,3,3,7,13,14,15,1 

5,7,7,128,128,128,192,192,240,224,224,22 

4,240,248,248,120,184,208,224 

6640 DATA 0,0,0,0,15,10,7,7,7,7,14,14,12 

,30,12,28,0,0,0,0,248,168,240,240,112,11 

2,48,48,48,120,48,112 

6650 DATA 0,0,8,14,15,56,16,8,8,1,15,23, 

27, 29, 30, 31, 0,0,1, 2 : 132,8, 24, 56,240,176, 

240,224,128,128,128,0 

6660 DATA 0,0,0,0,63,42,31,31,29,24,56,4 

8,112,224,96,120,0,0,0,0,192,192,128,128 

,192,192,224,96,96,240,96,120 

6670 DATA 0,0,128,64,33,16,24,28,15,13,1 

5,7,1,1,1,0,0,0,16,112,240,28,8,16,16,12 

8,240,232,216,184,120,248 

6680 DATA 0,0,0,0,3,3,1,1,3,3,7,6,6,15,6 

,30,0,0,0,0,252,84,248,248,184,24,28,12, 

14,7,6,30 

6690 DATA 0,0,32,56,62,192,64,32,32,0,63 

,95,110,115,122,124,16,16,16,16,16,16,48 

,96,224,176,48,48,48,0,0,0 

6700 DATA 0,0,0,0,0,0,0,0,0,0,4,7,7,30,1 

5,15,0,0,0,0,0,0,0,0,0,0,0,0,192,128,192 

,128 

6710 DATA 0,0,0,0,0,0,0,56,62,233,12,6,3 
,1,0,0,0,0,0,0,0,0,96,240,184,248,241,59 
,246,238,94,62 

6720 DATA 0,0,0,0,0,0,0,0,1,3,39,31,30,8 
,0,0,0,0,0,0,255,171,126,254,252,232,192 
,0,0,0,0,0 

6730 DATA 71,40,16,32,67,129,129,255,85, 
43,31,31,7,127,97,243,225,146,12,132,226 
, 193, 129, 255, 86, 172, 248, 248, 224, 254, 134, 
207 

6740 DATA 0,0,0,0,0,2,2,0,0,0,0,0,0,0,0, 

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 

6750 DATA 103,16,20,148,4,6,39,37,5,71,0 

,0,32,16,8,12,192,4,136,0,38,32,32,37,4, 

0,0,60,5,4,32,16 

DATA 0,0,0,3,0,0,0,1,3,3,7,7,15,255 
, 249, 3, 64, 64, 224, 248, 240, 248, 225, 230, 236 

,240,128,240,240,224,192,224 

6770 DATA 0,3,5,7,2,3,1,2,1,0,9,4,9,242, 

2,2,0,128,65,194,132,8,16,32,64,128,64,1 

28,0,0,0,128 

6780 DATA 0,0,0,64,64,105,127,127,63,53, 
M.M.M.M,*. 1.129,213,255,255,254, 

214,192,128,0,0,0,0 




6790 DATA 0,0,0,0,0,7,15,25,25,15,63,73, 
73,73,146,36,0,0,0,0,0,240,248,200,200,1 
20,254,37,37,37,20,18 
6800 DATA 0,0,96,120,122,127,127,127,7,3 
,3,4,8,0,0,0,0,0,12,60,188,252,252,252,1 
92,128,128,64,32,0,0,0 
6810 DATA 0,0,6,30,63,254,243,233,227,24 
7,29,12,26,15,0,0,0,0,192,240,248,254,15 
8,46,142,222,112,80,176,224,0,0 
6820 DATA 0,0,0,3,3,15,0,0,0,0,31,63,63, 
111,111,63,0,0,128,128,128,225,2,4,8,16, 
240,248,248,236,236,248 
6830 DATA 0,0,0,0,63,42,31,31,29,29,253, 
247, 161, 131, 1, 1,0,0,0,0, 192, 192, 128, 128, 
192,224,224,192,128,192,128,224 
6840 DATA 0,0,0,0,3,3,1,1,3,7,7,3,1,3,1, 
7,0,0,0,0,252,84,248,248,184,184,191,31, 
133,193,128,128 

6850 DATA 0,0,0,0,0,0,0,0,0,1,1,0,0,0,0, 
1,0,0,0,0,255,171,126,126,238,207,199,23 
1,230,255,230,254 

6860 DATA 0,0,0,0,0,5,15,7,7,6,0,0,0,0,0 
,0,0,0,0,0,0,0,128,0,0,0, 0,0,0,0,0,0 
6870 DATA 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, 
0,0,0,0,0,0,192,240,224,224,96,0,0,0,0,0 

6880 DATA 0,0,0,0,0,0,5,7,7,3,0,0,0,0,0, 

0,0,0,0,0,0,0,64,192,192,128,0,0,0,0,0,0 

6890 DATA 129,99,165,39,55,63,63,31,15,1 

5,15,15,15,15,15,31,2,140,74,200,216,248 

, 240, 224, 224, 224, 224, 224, 224, 224, 224, 240 

6900 DATA 5,5,5,37,39,31,31,95,127,63,63 

,31,31,31,31,14,128,128,128,0,0,128,128, 

128,128,224,224,224,192,192,128,0 

6910 DATA 8,8,8,15,15,15,127,127,0,0,0,0 

,0,0,0,0,0,0,0,240,240,240,254,254,0,0,0 

,0,0,0,0,0 

6920 DATA 0,0,0,0,0,0,0,0,15,31,31,15,15 
,7,7,3,0,0,0,0,0,0,0,0,240,248,248,240,2 
40,224,224,192 

6930 DATA 0,0,0,0,0,0,0,0,3,7,39,57,121, 
254,254,255,0,0,0,0,0,0,0,0,192,252,254, 



1 



255,255,127,127,159 
6940 DATA 16,8,4,15,15,15,127,127,0,0,0, 
0,0,0,0,0,0,0,0,240,240,240,254,254,0,0, 
0, 0,0,0,0,0, 

6950 DATA 0,0,0,0,0,0,0,0,31,31,31,30,14 
,6,6,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0 
,9 

6960 DATA 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1, 
3,0,0,0,0,0,0,0,0,96,112,120,112,96,112, 
112,128 

6970 DATA 0,0,0,0,0,0,0,0,7,7,15,15,31,3 

liliiHiMAiAMÁ «JWMum 

252,254,239,239 

6980 DATA 0,0,0,15,15,15,127,127,0,0,0,0 
,0,0,0,0,8,16,32,240,240,240,254,254,0,0 
,0,0,0,0,0,0 

6990 DATA 0,0,0,0,0,0,0,0,1,1,1,0,0,0,0, 

0,0,0,0,0,0,0,0,0,248,248,248,120,112,96 
,96,0 

7000 DATA 0,0,0,0,0,0,0,0,6,14,30,15,7,1 
5,15,3,0,0,0,0,0,0,0,0,0,0,0,128,128,128 
,128,192 

7010 DATA 0,0,0,0,0,0,0,0,3,7,15,31,63.1 
27,247,231,0,0,0,0,0,0,0,0,224,224,240,2 
40,248,248,248,248 



, r ¿ , 



7020 DATA 0,0,0,0,0,0,0,0,3,39,39,57,57, 
62,62,63,0,0,0,0,0,0,0,0,192,252,252,252 
,252,124,124,156 
7030 DATA 0,31,23,3,195,114,123,63,63,31 
,15,15,15,31,63,127,0,0,193,225,243,215, 
255, 255, 255, 255, 254, 252, 252, 252, 252, 254 
7040 DATA 128,113,145,17,16,16,31,5,7,0, 
7,3,4,8,8,56,193,230,85,228,196,196,252, 
208,240,128,224,192,32,16,16,28 
7050 INSTRUCCIONES M" 

7060 COLOR l,U,UiCLS 
7070 DR AW - BH50 , ■ : PR I NT« 1 , ■ ### INSTRUCCI 
ONES !••' 

7080 DRAW'BH5,20":PRINTil," Tienes que e 
1 i linar a una peí i-grosa secta que habí t 
a en una aansión tenebrosa. 

Dispa 

, ra contra todos los seres que se crucen 
en tu caaino hasta llegar al refugio de 
las brujas.' 

7090 DRAH'BH6,90'¡PRINT*1," En el refugi 
o activa el leca- nisio de relojería y 
escapa coao un rayo para que no te alca 
nce la explosión. 

Puedes usa 







r el joystick ó las teclas del cursor y 
la barra. 

7100 FOR 1=0 TO 12000:NEXT I 
7110 LINE(0,10)-(256,191),11,BF 
7120 DRAW"BM5,30":PRINT#1," Para dispara 
r apunta en la di- rección deseada y al 
■ísdio tiea-po pulsa el botón de disparo 
ó la barra. 

7130 DRAW-BH6,70":PRINT#1,- Para saltar 
(pantalla 4) pulsa el botón ó la barra. 

Para activar el aecamsao de reloj 
eria aproxiaate a él, ac-ciona hacia a 
bajo el joystick ó el cursor y sal de la 
habitación.' 

7140 FOR 1=0 TO 10000:NEXT I: GOTO 270 
7150 LINE(90,30)-(175,40),15,BF 
7160 BEEP 

7170 DRAH"BM100,32":COLOR 1 : PRINTH1 , "GAM 
E OVER" 

7180 PLAY'DFEDCDFEDCEE" 
7190 FOR 1=0 TO 3000: NEXT I 
7200 IF P=l THEN 880 ELSE 140 



_ 



TEST DE LISTADO 



Para utilizar el Test de Listados que ofrecemos al final de cada programa, recordamos que previamente hay 
que cargar en el ordenador el Programa correspondiente aparecido en nuestro número 1 0, de octubre , pág. 29. 



10 


- 58 


250 -184 


490 - 92 


730 -144 


970 


- 58 


1210 


- 27 


1450 


-196 


1690 


-134 


1930 


-181 


2170 


-135 


2410 


- 92 


20 


- 58 


260 -146 


500 - 82 


740 -248 


980 


-134 


1220 


- 46 


1460 


-166 


1700 


- 90 


1940 


-241 


2180 


-214 


2420 


-127 


30 


- 58 


270 -112 


510 - 52 


750 - 64 


990 


-234 


1230 


- 45 


1470 


- 46 


1710 


-130 


1950 


- 6 


2190 


-150 


2430 


-107 


40 


- 58 


280 -206 


520 - 28 


760 -101 


1000 


-126 


1240 


-171 


1480 


-204 


1720 


-133 


1960 


- 49 


2200 


- 97 


2440 


-106 


50 


- 58 


290 -200 


530 - 4 


770 -249 


1010 


- 74 


1250 


-217 


1490 


-140 


1730 


-221 


1970 


- 9 


2210 


- 82 


2450 


-120 


60 


- 58 


300 - 9 


540 - 80 


780 - 56 


1020 


- 23 


1260 


-147 


1500 


-196 


1740 


- 50 


1980 


- 51 


2220 


-245 


2460 


- 97 


70 


- 58 


310 - 78 


550 -136 


790 -245 


1030 


- 8 


1270 


-212 


1510 


-163 


1750 


-155 


1990 


- 64 


2230 


-150 


2470 


-111 


80 


- 58 


320 - 6 


560 -232 


800 -121 


1040 


-145 


1280 


- 49 


1520 


- 47 


1760 


-125 


2000 


- 85 


2240 


-161 


2480 


-215 


90 


- 58 


330 -135 


570 - 78 


810 - 83 


1050 


-205 


1290 


- 88 


1530 


-204 


1770 


-188 


2010 


- 7 


2250 


- 


2490 


-123 


100 


- 58 


340 - 91 


580 - 83 


820 -168 


1060 


-198 


1300 


-222 


1540 


-106 


1780 


- 98 


2020 


-223 


2260 


-136 


2500 


- 5 


110 


- 15 


350 - 13 


590 - 91 


830 -184 


1070 


- 2 


1310 


- 21 


1550 


-146 


1790 


-220 


2030 


- 60 


2270 


-222 


2510 


- 58 


120 


-206 


360 - 70 


600 - 86 


840 -204 


1080 


-233 


1320 


-171 


1560 


-133 


1800 


- 74 


2040 


- 45 


2280 


- 35 


2520 


-119 


130 


-241 


370 -252 


610 - 85 


850 -171 


1090 


-115 


1330 


- 7 


1570 


-113 


1810 


-184 


2050 


-178 


2290 


-237 


2530 


- 46 


140 


- 58 


380 -220 


620 - 99 


860 -185 


1100 


-122 


1340 


-245 


1580 


- 20 


1820 


- 38 


2060 


-220 


2300 


- 38 


2540 


-210 


150 


- 56 


390 -191 


630 - 98 


870 -204 


1110 


- 2 


1350 


-189 


1590 


- 46 


1830 


-181 


2070 


-164 


2310 


-129 


2550 


-134 


160 


-111 


400 -205 


640 -170 


880 - 75 


1120 


-110 


1360 


-204 


1600 


- 45 


1840 


- 75 


2080 


-171 


2320 


-213 


2560 


- 49 


170 


-168 


410 -202 


650 - 68 


890 - 23 


1130 


- 82 


1370 


-130 


1610 


-171 


1850 


-103 


2090 


- 74 


2330 


-101 


2570 


-175 


180 


-225 


420 -151 


660 -204 


900 -203 


1140 


- 58 


1380 


- 5 


1620 


-218 


1860 


-136 


2100 -245 


2340 


- 49 


2580 


- 71 


190 


-119 


430 -239 


670 - 20 


910 -241 


1150 


-211 


1390 


- 58 


1630 


- 88 


1870 


- 46 


2110 


-189 


2350 


- 83 


2590 


- 84 


200 


-250 


440 -190 


680 - 26 


920 - 16 


1160 


-239 


1400 


-134 


1640 


- 65 


1880 


-106 


2120 


-204 


2360 


- 99 


2600 


- 98 


210 


-181 


450 -241 


690 - 32 


930 -171 


1170 


- 80 


1410 


-234 


1650 


- 58 


1890 


- 88 


2130 


-167 


2370 


- 91 


2610 


-186 


220 


-134 


460 -243 


700 -148 


940 -217 


1180 


- 55 


1420 


-130 


1660 


- 62 


1900 


-219 


2140 


-128 


2380 


-106 


2620 


-189 


230 


-234 


470 -230 


710 -247 


950 -148 


1190 


- 27 


1430 


- 75 


1670 


-190 


1910 


- 81 


2150 


- 58 


2390 


- 81 


2630 


- 37 


240 


- 21 


480 - 94 


720 - 65 


960 -199 


1200 


- 49 


1440 -222 


1680 


-186 


1920 


- 39 


2160 


-211 


2400 


- 96 


2640 


- 55 




9 m # ti» 4 


liil 























. ■ | I. 




rKubKni leu 



2650 


- 80 


3070 


- 92 


3490 


- 71 


3910 


- 46 


4330 


- 24 


4750 


-140 


5170 


- 5 


5590 


-204 


6010 


- 58 


6430 


-228 


6850 


-210 


2660 


-245 


3080 


-171 


3500 


- 77 


3920 


-141 


4340 


- 20 


4760 


-195 


5180 


-214 


5600 


-147 


6020 


-144 


6440 


-179 


6860 


-146 


2670 


- 80 


3090 


- 62 


3510 


- 78 


3930 


-136 


4350 


-245 


4770 


-166 


5190 


-150 


,5610 


-211 


6030 


-246 


6450 


-122 


6870 


-186 


2680 


- 91 


3100 


- 49 


3520 


- 79 


3940 


-204 


4360 


- 69 


4780 


- 32 


5200 


- 45 


5620 


- 58 


6040 


-198 


6460 


-33 


6880 


-107 


2690 


-186 


3110 


- 83 


3530 


- 80 


3950 


-216 


4370 


- 15 


4790 


- 78 


5210 


-192 


5630 


- 25 


6050 


- 22 


6470 


-163 


6890 


-163 


2700 


-136 


3120 


- 96 


3540 


- 81 


3960 


-235 


4380 


-213 


4800 


- 62 


5220 


- 7 


5640 


-164 


6060 


- 45 


6480 


- 96 


6900 


- 76 


2710 


-171 


3130 


- 57 


3550 


- 82 


3970 


-160 


4390 


-206 


4810 


-127 


5230 


-203 


5650 


-194 


6070 


- 68 


6490 


- 58 


6910 


-110 


2720 


-132 


3140 


- 48 


3560 


- 83 


3980 


-101 


4400 


- 49 


4820 


-165 


5240 


-129 


5660 


-225 


6080 


- 81 


6500 


-181 


6920 


- 61 


2730 


-148 


3150 


- 75 


3570 


- 99 


3990 


- 40 


4410 


- 9 


4830 


-206 


5250 


- 23 


5670 


-192 


6090 


- 58 


6510 


-205 


6930 


- 91 


2740 


-108 


3160 


- 63 


3580 


- 63 


4000 


- 51 


4420 


-179 


4840 


- 22 


5260 


- 52 


5680 


-213 


6100 


- 79 


6520 


-233 


6940 


-197 


2750 


- 98 


3170 


- 80 


3590 


-127 


4010 


- 58. 


4430 


- 67 


4850 


- 18 


5270 


-213 


5690 


-156 


6110 


-208 


6530 


- 44 


6950 


-205 


2760 


-126 


3180 


- 58 


3600 


-245 


4020 


- 19 


4440 


- 88 


4860 


- 27 


5280 


-156 


5700 


- 10 


6120 


-142 


6540 


- 76 


6960 


-187 


2770 


-114 


3190 


- 69 


3610 


-171 


4030 


-164 


4450 


- 75 


4170 


- 40 


5290 


- 10 


5710 


-158 


6130 


-247 


6550 


- 42 


6970 


-122 


2780 


-125 


3200 


-237 


3620 


- 62 


4040 


-108 


4460 


- 58 


4880 


-204 


5300 


-158 


5720 


- 70 


6140 


-210 


6560 


-106 


6980 


-202 


2790 


-108 


3210 


- 35 


3630 


- 40 


4050 


- 70 


4470 


-119 


4890 


- 49 


5310 


- 70 


5730 


-160 


6150 


-142 


6570 


-246 


6990 


-106 


2800 


-120 


3220 


-101 


3640 


- 51 


4060 


- 74 


4480 


- 46 


4900 


- 9 


5320 


-160 


5740 


-132 


6160 


-213 


6580 


- 25 


7000 


-10 


2810 


-101 


3230 


-213 


3650 


- 58 


4070 


-135 


4490 


-134- 


4910 


- 51 


5330 


-132 


5750 


-162 


6170 


-142 


6590 


-206 


7010 


- 22 


2820 


-213 


3240 


-229 


3660 


-192 


4080 


- 86 


4500 


-190 


4920 


- 65 


5340 


-162 


5760 


-242 


6180 


-145 


6600 


- 58 


7020 


-190 


2830 


-237 


3250 


- 38 


3670 


-251 


4090 


-217 


4510 


-186 


4930 


- 86 


5350 


- 49 


5770 


-204 


6190 


- 56 


6610 


- 33 


7030 


-111 


2840 


- 35 


3260 


-204 


3680 


-148 


4100 


-189 


4520 


-210 


4940 


-179 


5360 


- 35 


5780 


-199 


6200 


-122 


6620 


- 43 


7041 


= 1 


2850 


- 38 


3270 


-251 


3690 


- 19 


4110 


-220 


4530 


- 68 


4950 


- 15 


5370 


- 29 


5790 


- 78 


6210 


- 58 


6630 


-111 


7050 


- 58 


2860 


-204 


3280 


- 68 


3700 


-164 


4120 


-204 


4540 


-175 


4960 


-213 


5380 


- 44 


5800 


-204 


6220 


-253 


6640 


-192 


7060 


- 52 


2870 


- 62 


3290 


- 49 


3710 


-197 


4130 


- 35 


4550 


- 8 


4970 


-144 


5390 


- 45 


5810 


-201 


6230 


- 80 


6650 


-217 


7070 


-125 


2880 


- 14 


3300 


- 83 


3720 


-183 


4140 


- 63 


4560 


- 20 


4980 


- 75 


5400 


- 59 


5820 


- 58 


6240 


-106 


6660 


-121 


7080 


- 18 


2890 


- 70 


3310 


- 96 


3730 


-189 


4150 


- 22 


4570 


- 98 


4990 


- 69 


5410 


-211 


5830 


-155 


6250 


- 94 


6670 


-148 


7090 


-147 


2900 


- 58 


3320 


-107 


3740 


- 63 


4160 


-111 


4580 


-186 


5000 


- 70 


5420 


- 58 


5840 


-234 


6260 


-228 


6680 


-110 


7100 


-212 


2910 


-140 


3330 


-189 


3750 


-140 


4170 


- 


4590 


-190 


5010 


-164 


5430 


-186 


5850 


-129 


6270 


- 97 


6690 


-235 


7110 


-140 


2920 


-195 


3340 


-123 


3760 


-151 


4180 


- 19 


4600 


- 22 


5020 


- 58 


5440 


-167 


5860 


-140 


6280 


-186 


6700 


- 55 


7120 


- 78 


2930 


-120 


3350 


-180 


3770 


- 


4190 


-251 


4610 


-239 


5030 


- 19 


5450 


- 35 


5870 


-129 


6290 


-151 


6710 


- 99 


7130 


-207 


2940 


- 62 


3360 


-171 


3780 


-136 


4200 


-101 


4620 


- 37 


5040 


-234 


5460 


- 60 


5880 


-116 


6300 


- 45 


6720 


-108 


7140 


-221 


2950 


- 68 


3370 


- 62 


3790 


- 70 


4210 


- 67 


4630 


-245 


5050 


- 31 


5470 


- 69 


5890 


-181 


6310 


-233 


6730 


-107 


7150 


- 36 


2960 


-251 


3380 


-237 


3800 


- 87 


4220 


- 40 


4640 


- 69 


5060 


-245 


5480 


-203 


5900 


-226 


6320 


- 59 


6740 


-220 


7160 


-192 


2970 


-253 


3390 


- 35 


3810 


-245 


4230 


- 51 


4650 


-206 


5070 


- 69 


5490 


-162 


5910 


-244 


6330 


-133 


6750 


-222 


7170 


-130 


2980 


-255 


3400 


-101 


3820 


-204 


4240 


- 58 


4660 


- 58 


5080 


-133 


5500 


-192 


5920 


- 64 


6340 


-251 


6760 


- 52 


7180 


- 59 


2990 


-254 


3410 


-213 


3830 


-189 


4250 


-214 


4670 


-100 


5090 


- 26 


5510 


-213 


5930 


-119 


6350 


- 16 


6770 


- 21 


7190 


-137 


3000 


- 


3420 


-204 


3840 


-211 


4260 


-193 


4680 


-114 


5100 


- 22 


5520 


-152 


5940 


-102 


6360 


-255 


6780 


- 75 


7200 


-172 


3010 


_ 9 
i 


3430 


- 64 


3850 


-199 


4270 


-211 


4690 


-135 


5110 


-204 


5530 


- 10 


5950 


- 58 


6370 


-142 


6790 


-195 






3020 


- 4 


3440 


- 65 


3860 


- 66 


4280 


-135 


4700 


- 15 


5120 


- 75 


5540 


-154 


5960 


- 73 


6380 


-120 


6800 


-252 






3030 


- 5 


3450 


- 66 


3870 


-142 


4290 


-214 


4710 


-213 


5130 


- 58 


5550 


- 70 


5970 


-227 


6390 


-142 


6810 


-204 






3040 


-250 


3460 


- 67 


3880 


- 70 


4300 


-150 


4720 


-204 


5140 


- 87 


5560 


-156 


5980 


- 22 


6400 


-145 


6820 


- 46 






3050 


-167 


3470 


- 68 


3890 


-245 


4310 


- 49 


4730 


- 62 


5150 


- 23 


5570 


-132 


5990 


-243 


6410 


- 43 


6830 


-203 


TOTAL: 


3060 


-180 


34B0 


- 69 


3900 


- 35 


4320 


- 37 


4740 


-142 


5160 


-211 


5580 


-158 


6000 


-129 


6420 


-158 


6840 


-164 


88065 




ENTRA EN LA AVENTURA 
CORRE A TODA PASTILLA 
CON 



••«•a ijei »a mu » r 



DE MANHATTAN TRANSFERS, S.A. 




>0 




JZ*Qi T íOC 
IRTU tí l-i 







BUSCA LA PAEEJA 



Programa de juego por José R. García Espine ira 
Agrupar las cartas de dos en dos parece fácil; pero precisarás de una gran 
cantidad de memoria para ganar al ordenador con este juego. Si queréis un 

consejo: no utilicéis el nivel 6 si os gusta ganar. 




* ■ 

1 4 

■ ■ 

■ ■ ■ ■ 



3"> 35 3€ 3 ? 33 3? ■* • 




10 REH 

20 REH — presentación — 
30 REH 

40 SCREEN 0,0,1:KEY 0FF:CLS 

50 COLOR 15,1,0 

60 PR$="BUSCA LA PAREJA':C=10 

70 FOR J=l TO 15:001 

80 LOCATE C,5:PRINT HID$(PR*,J,1) 

90 FOR 1=1 TO 55:NEXT I,J 

100 LOCATE, 7: PRINT STRING$ (37 , ScHC2) 

110 LOCATE 5,10:PRINT 'Escrito por: JOSE 

ESPIREIRA" 

120 LOCATE 16,22:PRINT 'USX' 

130 LOCATE 6,13:PRINT 'Piedras Blancas-A 

STURIAS' 

140 LOCATE 14, 15: PRINT '25-4-85' 

150 LOCATE 8,20:PRINT '--PULSA UNA TECLA 
__■ 

160 T$=INKEY$:IF T$=" THEN 160 
170 REH 

180 REH — prograia — 
190 REH 
200 CLEAR 

210 PR$='BUSCA LA PAREJA' 

220 H$= B 122cdefgab" 

230 PLAY H*:F0R N=22 TO 50:PRINT:NEXT 

240 CLS:C0L0R 15,4,4:L0CATE 10,1:PRINT P 

M 

250 LOCATE 2, 10:PRINT'NECESITAS INSTRUCI 
ONES (S/N) ■ 

260 0$=INKEY$:IF M»" THEN 260 

270 IF Q$='s* OR Q$='S" THEN GOSUB 2060 

280 CLS:LOCATE 10,1jPRINT PR$:PLAY Ht 

290 IF TT THEN CLEAR: SCREEN § 

300 LOCATE 2,10:PRINT'ELI6E UNO DE LOS N 

I VELES (DE 1 A 6) 



310 LOCATE 2,15:PRINT "NIVEL lsFACILINIV 

EL 6:HUY DIFICIL" 

320 Q$=INKEY$: IF 0$="" THEN 320 

330 FOR J=l TO 678:NEXT 

340 FOR 1=1 TO 26:PRINT:PLAY '135ac':NEX 

T 

350 I=VAL(0$):IF Kl OR I>6 THEN 320 

360 NI=I:PLAY Of 

370 OPEN •grp:' AStl 

380 DIH A(40),H(40),6(10) 

390 TU$='TU TURNO" 

400 HI$="HI TURNO" 

410 TP$="TUS PUNTOS:" 

420 HP$='HIS PUNTOS:" 

430 O=105:O1=143:CE=0 

440 AH=173:AB=178:T=1 

450 DI=17:VE=23:CU=40 

460 CI=50:TR=32:SP=1 

470 DL=1000:R=0:S=0 

480 FOR J=l TO 1 : READ 6(J):NEXT 

490 FOR J=l TO I:T=T$2:NEXT 

500 IF T>CU THEN T=CU 

510 SCREEN 2,2 

520 FOR J=l TO 23: READ N* 

530 D$=D$+CHR$(VAL('fch'+N$)) 

540 NEXT 

550 SPRITE$(1)=STRIN6$(8,255) 
560 SPRITE$(3)=D$ 

570 CLS: PRESET ( 100, 70) : PRINTI1 , "NI VEL: " ; 
NI 

580 FOR J=CE TO DL: NEXT: COLOR 15,12,5:CL 
S 

590 LINE (CE,191)-(255,CE),1,B 

600 LINE (8,186)-(247,166),5,BF 

610 LINE (8,186)-(247,166),1,B 

620 LINE (127,1B5)-(131,167),1,BF 

630 LINE(30,166)-(30,186),1 

640 LINE (225, 166) - (225, 186) , 1 

650 C=l:F0R J=29 TO 180 STEP TR 

660 FOR 1=4 TO 240 STEP TR 

670 PRESET (I,J):PRINTIl,C:C=C*l:PLAY"14 

6ag* 

680 NEXT I,J 

690 FOR I»l TO CU:A(I)=INT(I/2*.5):H(I)= 
CE: NEXT 

701 FOR 1*1 TO CU 



710 J=RND(-TIHE)tCUM:C=A(J):A(J)=A(I):A 

(I)=C 

720 NEXT 

730 FOR 1=7 TO 240 STEP TR 

740 FOR J=4 TO 140 STEP TR 

750 LINE (I, J)-(I+DI, J+VE) , 1 1 , BF 

760 LINE (I,J)-(I+DI,J+VE),1,B:BEEP 

770 PRESET ( 1+5, J*5) : PRINTil , CHR$( 1 ) ;CHR$ 

(IH42) 

780 PRESET ( 1*5, J+13) : PRINTil, CHR$ (lcHD2) 
790 PLAY "154ga" 
800 NEXT J,I 

810 PRESET (CU,AB-4):PRINT*1,TU$ 
820 PRESET (O+50,AH*1):PRINTI1,HI$ 
830 PLAY "L22AB" 
840 60SUB 1530 
850 B=E 

860 PLAY "L22o5BA" 

870 GOSUB 1530 

880 IF B=E THEN 860 

890 FOR I=CE TO DL: NEXT 

900 Z=1:60SUB 1740 

910 IF R+S=20 THEN 1260 

920 IF Z=CE THEN 830 

930 GOSUB 1910 

940 PUT SPRITE 1,(01,AH),9 

950 FOR 1=1 TO T-l 

960 B=H(I) 

970 IF B=CE OR A(B)=CE THEN 60T0 1030 
980 FOR J=I+1 TO T 
990 E=H(J) 

1000 IF E=CE OR B=E OR A(E)=CE THEN 1020 
1010 IF A(B)=A(E) THEN 1210 
1020 NEXT J 
1030 NEXT I 

1040 IF R*S=20 THEN 1980 
1050 B=INT(RND(-TIHE)tCU*l> 
1060 IF A(B)=CE THEN 1040 
1070 FOR I«CE TO T 
1080 IF H(I)*B THEN 1040 
1090 NEXT 
1100 FOR 1=1 TO T 
1110 E=H(I) 

1120 IF A(B)=A(E) THEN 1210 
1130 NEXT 

1140 E*INT(RND(-TIHE)$CU+1) 



- 




JDOfflOC 

ifsiil II I-' 



1150 IF B=E OR A(E)=CE THEN 1140 
1160 FOR 1=1 TO T 
1170 IF H(I)=E THEN 1140 
1180 NEXT 

1190 IF A(B)=A(E) THEN 1210 

1200 BOSUB 1910 

1210 2=2 

1220 GOSUB 1680 

1230 IF R+S=CU/2 THEN 1260 

1240 IF Z=CE THEN 940 

1250 60T0 830 

1260 FOR 1=1 TO DL: NEXT 

1270 LINE <3,74)-(252,5),4,BF 

1280 PRESET ( 15, 20) : PRINTtl , TP$; R 

1290 PRESET ( 15, 40) : PRINTtl , MP$; S 

1300 LINE (2,165)-(253,75),10,BF 

1310 PRESET ( 15, 65) : PRINTtl , "ELIGE LA OP 

CI0N(l-2-3)" 

1320 PRESET (CI,85):PRINTtl,'l-0TRA PART 
IDA" 

1330 PRESET (CI, 115) :PRINTtl, "2-VOLVER H 
ENU" 

1340 PRESET <CI, 144) ¡PRINTtl, "3-TERMINAR 
■ 

1350 TIHE=CE 

1360 IF TIME>DL$2 THEN 1410 

1370 9$=INKEY$:IF Q$="" THEN 1360 

1380 R=CE:S=CE 

1390 IF VAL(Q$)<1 OR VAL(Q$)>3 THEN 1360 
1400 ON VAL(9$)G0T0 570, 1420, 1410: GOTO 1 
370 

1410 60TO 2120 
1420 TT=1:60T0 280 
1430 REH 

1440 P=INT((N-l)/8):Y=4+TRtP:X=7+TRt(N-P 
18-1) ¡PLAY -L33DA- 

1450 IF L=CU THEN LINE ( X , Y) - ( X+DI , Y+VE ) 
,6,BF:LINE (X, Y) - (X+DI , Y+VE) , 1 , B: PRESET ( 
X+5,Y+4) : PRINTtl, CHR*(1) ;CHR$(fcH5C)¡PRES 
ET(X+5,Y+12) ¡PRINTtl, CHR$ ( 1 ) ; CHR$ ( &H5C ) : 
RETURN 

1460 IF L=CI THEN LINE ( X , Y) - ( X+DI , Y+VE* 
9), 12, BF: RETURN 

1470 C=INT(L/10):F=L-CI10 








1480 LINEÍX, Y)-(X+DI, Y+VE) , 15,BF 
1490 LINE (X,Y)-(X+DI, Y+VE),1,B 
1500 LINE <X+3, Y+3)-(X+DI-3,Y+VE-3) , 1+Ct 
4, BF 

1510 PRESET (X+6,Y+8):PRINTtl,CHR$(G(F) ) 
¡PLAY "L22F' 
1520 RETURN 
1530 B$="¡TIHE=CE 
1540 IF TIHE>DL-100 THEN 940 
1550 IF TIHE>640 AND TIHE <755 THEN PLAY 
"164o7b" ELSE 1570 

1560 PUT SPRITE 1, (0,AH) , l:FOR J=CE TO V 
E : NEXT 

1570 PUT SPRITE 1,(0,AH),9 
1580 E$=INKEY$:IF E$=" THEN 1540 
1590 IF E$=CHR$(13) THEN 1610 
1600 B*=B*+E$:GOTO 1540 
1610 E=VAL(B$) 

1620 IF E<1 OR E>CU THEN 1540 

1630 IF A(E)=CE THEN 1530 

1640 L=A(E)-1 

1650 N=E 

1660 GOSUB 1440 

1670 RETURN 

1680 N=B:L=A(B)-1 

1690 GOSUB 1440 

1700 FOR 1=1 TO DL: NEXT 

1710 N=E:L=A(E)-1 

1720 GOSUB 1440 

1730 FOR 1=1 TO DL:NEXT 

1740 IF A(B)=A(E) THEN 1800 

1750 L=CU:N=B 

1760 GOSUB 1440 

1770 N=E 

1780 GOSUB 1440 

1790 RETURN 

1800 L=CI:N=B:A(B)=CE 

1810 GOSUB 1440 

1820 N=E:A(E)=CE 

1830 GOSUB 1440 

1840 IF Z=l THEN R=R+1 

1850 IF Z=2 THEN S=S*1 

1860 LINE(9,184)-(28,168),5,BF 

1870 LINEÍ227, 184) - (245, 168) , 5, BF 



1880 PRESET (5, 173) : PRINTtl, R 

1890 PRESET(222, 173) ¡PRINTtl, S 

1900 Z=CE: RETURN 

1910 IF T=2 THEN 1960 

1920 FOR 1=3 TO T 

1930 H(I-2)=M(I) 

1940 NEXT 

1950 N(T-1)=B 

1960 H(T)=E 

1970 RETURN 

1980 FOR 1=1 TO CU 

1990 IF A(I)=CE THEN NEXT I 

2000 B=I 

2010 FOR J=I TO CU 

2020 IF A(J)=CE THEN NEXT J 

2030 E=J 

2040 60TO 1210 

2050 REH — instruciones — 
2060 PLAY H$: LOCATE ,7:PRINT 'EL JUEGO C 
ONSISTE EN ENCONTRAR LA PAREJA DE CAD 
A UNA DE LAS CARTAS DE LA NESA,SI ACIE 
RTAS SIGUES JUGANDO HASTA QUE PIERDAS, S 
INO ACIERTAS O PIERDES, ENTONCES J 

UGARE YO" 

2070 PRINT: PRINT: PRINT: PRINT "PRIMERO IN 
TRODUCES EL NUHERO DE UNA CARTA Y PULSA 
S<RETURN> Y DESPUES EL SEGUNDO Y PULSA 
<RETURN> DE NUEVO" 

2080 LOCATE 5,22¡PRINT "Heioria ocupada' 

;28815-FRE(7);'byts" 

2090 TIHE=CE 

2100 IF TIHE>2000 THEN 280 

2110 Q$=INKEY$¡IF Q$=" THEN 2100 ELSE R 

ETURN 

2120 SCREEN 3 

2130 PRESET ( 77 , 75 ) : PR I NT 1 1 , " F I N " 
2140 PUT SPRITE 3, (45, 75), 11 
2150 Q*=INKEY$:IF Q$=" THEN 2150 
2160 RUN 

2170 DATA 157,188,191,74,81,75,234 
2180 DATA 240,146,241,77,44,62,41 
2190 DATA 77,0,0,72,50,72,42,42,0 
2200 DATA 0,0,7e,67,94,94,62,91,91,66 





10 - 90 -103 170 - 


250 


-165 


330 - 


39 


410 


- 26 


490 


-131 


570 


-219 


650 


-131 730 


- 44 


810 


-91 890 


-104 


970 


- 1 


20 - 100 - 32 180 - 


260 


-170 


340 - 


45 


420 


- 


500 


- 26 580 


-224 


660 


- 41 740 


-198 


820 


- 56 900 


- 2 


980 


- 52 


30 - 110 -206 190 - 


270 


- 33 


350 - 


15 


430 


-110 


510 


- 23 


590 


- 51 


670 


-209 750 


-197 


830 


- 56 910 


- 11 


990 


- 28 


40 - 27 120 - 79 200 -146 


280 


- 5 


360 - 


¿1 


440 


- 53 


520 


- 8 


600 


- 46 


680 


- 66 760 


-113 


840 


-154 920 


-133 


1000 


-224 


50 - 86 130 - 91 210 -167 


290 


-175 


370 - 


64 


450 


-126 


530 


-184 


610 


-228 


690 


-219 770 


- 75 


850 


-118 930 


- 24 


1010 


-203 


60 - 44 140 -176 220 - 48 


300 


-132 


380 - 


45 


460 


-120 


540 


-131 


620 


- 43 


700 


- 61 780 


-174 


860 


-220 940 


-137 


1020 


-205 


70 -118 150 -213 230 -251 


310 


-140 


390 - 


65 


470 


-159 


550 


-196 


630 


-177 


710 


-203 790 


-162 


870 


-154 950 


-253 


1030 


-204 


80 -117 160 - 75 240 - 48 


320 


-230 


400 - 


27 


480 


- 31 


560 


-167 


640 


- 55 720 


-131 800 


- 66 


880 


- 72 960 


- 24 


1040 


-222 



I) I 



* m 



i isUüKnuru 



1050 


- 41 


1160 


-249 


1270 


- 30 


1380 


-205 


1490 


-179 


1600 


-240 


1710 


-210 


1820 


- 10 


1930 


-194 


2040 


- 85 


2150 - 19 


1060 


-210 


1170 


- 6 


1280 


- 2 


1390 


-117 


1500 


- 75 


1610 


-126 


1720 


- 64 


1830 


- 64 


1940 


-131 


2050 


- 


2160 -138 


1070 


-111 


1180 


-131 


1290 


- 16 


1400 


-125 


1510 


- 40 


1620 


-134 


1730 


-242 


1840 


- 86 


1950 


- 39 


2060 


-175 


2170 - 62 


1080 


-159 


1190 


-203 


1300 


-193 


1410 


-231 


1520 


-142 


1630 


-192 


1740 


- 28 


1850 


- 89 


1960 


- 38 


2070 


-132 


2180 -247 


i ana 
10T0 


-131 


1200 


- 24 


1310 


- 26 


1420 


-147 


1530 


- ?! 


1640 


- 22 


1750 


-140 


1860 


- 84 


1970 


-142 


2080 


- 76 


2190 -229 


1100 


-249 


1210 


- 92 


1320 


- 57 


1430 


- 


1540 


-208 


1650 


-130 


1760 


- 64 


1870 


- 5 


1980 


- 61 


2090 


- 66 


2200 -251 


1110 


- 27 


1220 


- 49 


1330 


- 48 


1440 


-191 


1550 


-114 


1660 


- 64 


1770 


-130 


1880 


-144 


1990 


-131 


2100 


- 56 




1120 


-203 


1230 


-135 


1340 


-157 


1450 


-223 


1560 


-254 


1670 


-142 


1780 


- 64 


1890 


-104 


2000 


-122 


2110 


- 74 




1130 


-131 


1240 


-243 


1350 


- 66 


1460 


- 


1570 


- 88 


1680 


-204 


1790 


-142 


1900 


-153 


2010 


-117 


2120 


-217 




1140 


- 44 


1250 


-216 


1360 


- 73 


1470 


- 92 


1580 


-151 


1690 


- 64 


1800 


- 5 


1910 


-120 


2020 


-133 


2130 


- 67 


TOTAL: 


1150 


-166 


1260 


-242 


1370 


-250 


1480 


- 5 


1590 


- 29 


1700 


-242 


1810 


- 64 


1920 


-251 


2030 


-126 


2140 


- 19 


24397 
















































— 










— 
































G R A P H I C| 



Programa de utilidad por Javier Sánchez 
Este programa demuestra las grandes posibilidades de las pequeñas rutinas 
en ensamblador añadidas a nuestros programas. Interesante programa para 
*°^ar de él buena» ideas para vues tros programas. 



mf inimif nrmun 

SRAPHIC 
(0 Javier Sánchez 
para HSX-EXTRA 
immnmmmmu 



II 

20 
30 
40 
50 
60 
70 » 

80 CLEAR200,*H9C06 

90 ON INTERVAL'700 GOSUB 1700 

100 KEY OFF 

110 COLOR 15,l,liBCREENl,l 

120 GOSUB 610 

130 GOSUB 820 

140 GOSUB 1010 

150 GOSUB 900 

160 GOSUB 1110 

170 GOSUB 1330 

180 U*USR3(U): INTERVAL ON 

190 IF INKEYfOCHRim) THEN 190 ' 

210 ' MENU 

210 INTERVAL OFFiLINE<0,0)-(255, 192) , l,B 
F 

220 FOR 1*0 TO 4:LINE 11,1) -(255-1, 192-1 
>,6,B¡NEXTsLINE(10,90)-(246,180),7,B 
230 LINE (90,10)-(155,22),15,BF:LINE (90 
,28)-(155,40),4,BF 
240 PLAY H5$ 

250 COLOR 1 ¡ DRAWBM95, 12*: PRINTil , «GRAPH 
IC" : DRAWBH96, 12' : PRINTil , "6RAPHIC" 
260 COLOR 15sDRAN'BHlll,30'jPRINTIl,'HSX 
■iDRAH'BH112,30'!PRINTll,"HSX" 



270 COLOR 11 1 DR AN ' C 1 BH 1 00 , 72 a i PRINTIl , "E 
LIGE:":COLOR 12 

280 DRAW"BM15, 1 00" : PR INTi 1 , "F 1 - VER GRA 
FICO EN C/H" 

290 DRAW-BM15, 1 1 5 " : PR I NT# 1 , "F2 - GRABAR 
GRAFICO EN C/H" 

300 DRAWBM15, 130" : PRINT#1 , "F3 - CAHBIAR 
COLORES' 

310 DRAN'BH15,145'sPRINTll,'F4 - VER GRA 
FICO EN BASIC" 

320 DRAN'BH15,160'¡PRINTI1,"F5 - FIN' 
330 6OSUB1750 

340 ON KEY GOSUB390,430,530,580,600 

350 F0RI=lT05sKEYÜ) ONiNEXT 

360 U*USR3(U) 

370 GOTO370 

380 ' VER EN C/H 

390 BEEPsPLAY NlIsCLS 

400 A=USR1 (A) ¡U=USR3(U)¡ INTERVAL ON 

410 IF INKEY$OCHR$(13) THEN 410 

420 GOTO 210 

430 ' GRABAR 

440 BEEPsPLAY f12$:U=USR3(U) 

450 LINE(11,91)-(245,179),1,BF 

460 DRAM'BH27,130"iPRINTIl, 'PULSA REC/PL 

AY Y 'RETURN'" 

470 IF INKEY$OCHR$(l3) THEN 470 

480 LINE(ll,91)-(245,179),l,BFiDRAH"BH35 

,130'sPRINTll, 'GRABANDO 6RAPHIC 

490 POKE 39984 !,0 

500 BSAVE'GRAPH', 39956!, 56383!, 39956! 



510 P0KE39984 ! , 20 1 : BEEP: RETURN 210 
520 ' CAHBIAR COLORES 
530 BEEP: PLAY H3$:CLS:U=USR1 (U) 
540 F0RI=8192T014335:V=VPEEK(I):V= V XO 
R 255;VP0KEI,V:NEXT 
550 INTERVAL0N¡U=USR3(U) 
560 IF INKEYSOCHRtUS) THEN 560 ELSE 21 


570 ' VER EN BASIC 

580 BEEPsPLAY H4$: CLS: GOTO170 

590 ' FIN 

600 COLOR 15,4,4sSCREEN 0: KEYQN: END 
610 ' HUSICA 

620 HU*'V12T255L604CFSA' 
630 H2$«"V12T255L605AFGC" 
640 H3$='V12T255L603CGFA' 
650 H4$»'V12T255L604A6FC" 
660 H5$*H1$+H2$+H3$+H4* 
670 RETURN 
680 ' DATAS 

690 ■ LEE COLORES Y CARACTERES 

700 DATA71, 8,82,10,65,7,80,2,72,4,73,14, 

67,13 

710 ' PASA LETRAS A SPRITES 

720 DATA 21,0,0,11, 41, B4, 01, 0,B,CD,59,0, 

21,41,B4,ll,0,38,01,0,8,CD,5C,0,C9 

730 ' PASA DE VRAM A RAH 

740 DATA21, 0,0,11, 40,9C,1,0,40,CD,59,0,C 
9 

750 ' SCREEN 2 + COLOR NEGRO 

760 DATA3E,01,32,EB,F3,32,EA,F3,3E,2,32, 



a m ú 




ss&rJk OOi~h~ OQi~!QC 

(«r* / i\UiMni b u 







AF,FC,CD,5F,0 

770 » PASA DE RAM A VRAH 

780 DATA21,40,9C, 11,0,0. 1,0, 40,CD,5C,0,C 

9 

790 » ESPERA UNA TECLA 

800 DATA3E,07,CD,41,01,CB,7F,C2,31,9C,CD 

,56,01,C9 

810 ' 

820 ' LECTURA C/H 

830 RESTORE 700:FORI«1TO 7¡READ SP ( I ) , CO 
(I):NEXT 

840 RESTORE 720:FOR 1*40000' TO40024 ! i REA 
DWi R*VAL ( a tH " +R$ ) t POKE I , Ri NEXT 
830 RESTORE 740iFOR>39943!TO39998! :READ 
R$:R=VAL("&H"+R$):POKE I.RsNEXT 
860 DEFUSR0*39943 ! : DEFUSR1 -39972 ! s DEFUSR 
2=40000 í:DEFUSR3«342 

870 SPRITEK0)»CHR$(1B)+CHRI(21)+CHR*(25 

5)*CHR$(21)+CHR$(53)+STRIN6$(11,0)*CHR$( 

84) *CHRt (84) *CHR$ (255) +CHR$ (84) +CHRt (36) 

♦STRIN6$(ll f 0) 

880 RETURN 

890 ' INSTRUCCIONES 

900 COLOR 13. 1, lsSCREEN 0iKEY OFF 

910 PRINT: PRINT TAB( 15) "GRAPHIC : PRINT T 

AB (15) " " 

920 PRINT: PRINT: PRINT: PRINT'Este prograi 
a presenta un gráfico de alta resolución 
. Al principio se ve- rá realizado en BA 
SIC pero después tendrás la opción di 
verlo en CODIGO MAQUINA. Coio podrás coi 
probar en" 

930 PRINT'BASIC se ve todo el desarrollo 
del gráfico pero su realización es iu 

y lenta. En C/M, sin eibargo, es ins- 
tantáneo." 

940 PRlNT"Podrás incluso grabar el gráfi 

co en C/M y caibiarle todos los colores 
■ 

950 PRINT:PRINT:PRINT"PARA SALIR DEL GRA 
FICO PULSA RETURN" 

960 LOCATE 1 1 , 22 : PR I NT - pu 1 sa una tecla" 

970 PLAY H5*:U*USR3(U) 

980 IF INKEY$=" " THEN 980 

990 BEEPiF0RI"lT024sPRINTiNEXT 

1000 RETURN 

1010 ' PRESENTACION 

1020 U*USR2(U) 

1030 F0RI«lT02sF0RJ»lT07 

1040 FOR K=220 TO 185-(6-J)«30 STEP-4iPU 

T SPRITE J, (K, K/1.5) ,C0(J) ,SP(J) iNEXT K, 

íil 

1050 FORI«1TO1000:NEXT 

1060 FORI-16TO160SPUTSPRITEB, (32, 1 ) , 15 p 

77:PUTSPRITE9, (48, 1 ) , 15, 83i PUTSPRITEli, ( 



64,I),15,88sFORMTO10iNEXTJ,I 

1070 COLOR 1 2 : LOC ATE22 , 2 : PR I NT " Por J.S" 

1080 FORI>lTO4000iNEXT 

1090 RETURN 

1100 ' CADENAS GRAFICAS 

1110 A$«"BM0,145UERUE2URUEURE2U2R2UEURER 

E2DRDFRF2RD2RFDRDRDR2DD D0RDFE2R2UE 2UR2U 

RURE2URERURE2R15;" 

1120 B$ S "BH0,50FRD2RFDRDFRDR262LD6DLD62D 

L6U18; " 

1130 B1*»"BM115,85ERERUE2UEF2DRDFDFGL2DL 
62L2ULULUHLU;" 

1140 B2I*"BM16S, 140E2R2UE2UR2URURE2URERU 

2LHULUHGLGDLDLGLG3L2DLG2D2F2D2RDF2| " 

1150 C$""BM115,B5EREHUGLGRD2| H 

1160 Cl$ s 'BM20 f 70RERURE2DRFD2GDL2D2L2ULH 

ULU2;" 

1170 C1$*"BM20,70RERURE2DRFD26DL2D2L2ULH 
ULM-1,-2;" 

1 180 C2$«"BM175, 85E2RELUH6LDGDFR) " 

1190 D$x"BM125,190M+7,-3UH2UE3H-l,+3RF2R 

FDM-2, +3L10; N 

1200 D1$*"C15BH160, 160FBRFBLDBGGBL2GBR5B 
UE;" 

1210 E*="BM45,125R8H-3,+4L9E4;" 

1220 E1$="BN70, 145M+3,-4M+3,+2D4M-6, +2U4 

L8D4R8;" 

1230 E2$="C1BM60, 150D2L3U2R3LD2LU2BGR3; " 

1240 F$="BM0,145R3DUR2;" 

1250 F2$«"C1BM5, 180UR2DUR2DUR2DUR2DUR2DU 

R2DUR2D;" 

1260 F3*»"CIBM75, 180UM+2, -1DUM+2, -1DBR3B 

UUM+2, -1DUM+2, -1DUEDUL2DUL2DUL2DUL j " 

1270 GI-"BM223,145UEUH2L2DL2D6DFR3|" 

1280 61I'"BM210,145RD4LU4;" 

1290 G2I«"BM195,175ER5M+2,*1R2BLBGBR2UBR 

F2;" 

1300 HM"BH0,145M+4,-lR2H*14,-lR5M+4,+lR 

7M+3,-lR9M+3,*lR" 

1310 RETURN 

1320 ' REALIZA GRAFICO 
1330 C0L0R15, i, 1 I SCREEN2 , 2i 608UB87I 
1340 DRA1TS20A0;" 
1350 CLOSEiOPEN"GRP:"ASIl 
1360 LINE(0,0)-(255,190),1,B 
1370 LINE(0,191)-(255,19t),l 
1380 LINE(0,145)-(255,190),2,BF 
1390 DRAW"C2;XH$;":PAINT(20,142),2 
1400 LINE(0,0)-(255,15),13,BF 
1410 LINE(0,15)-(255,23),B,BF 
1420 LINE(0,23)-(255,30),9,BF 
1430 LINE (0, 30) - (255, 35) , 10, BF 
1440 LINE(0,35)-(255,75),11,BF 
1450 CIRCLE(130,65),35,9„,7/5 
1460 PAINT(130,65),9 







1470 DRAM"C3;XAf;XH«;" 

1480 PAINT(75,100),3:PAINT(240,100),3 

1490 DRAH*C2)XBt;XBlt;XB2t|" 

1500 PAINT(10,75),2:PAINT(150,75),2 

1510 PAINT (200, 80) , 2 

1520 DRAH'C12;XC$;XC1$;XC2$;" 

1530 PAINT(40,75),12jPAlNT(120,75),12 

1540 PAINT(1B0,70),12 

1550 DRAN"C7}XD$;"sPAINT(170,175),7 

1560 DRAW"C15jXDl$j" 

1370 DRAM"C8|XE$j"sPAINT(50,135),8 

1580 DRAW"C15}XE1I|':PAINT(80,155),15 

1590 PAINT(50,150),15 

1600 LlNE<70 t 145HB5,l25>,iiPAINT<?I,n 
8) ,8:PAINT(80, 127) ,8:DRAN"C1BH70, 145D4; 1 
:PSET(104,145),1 

1610 CIRCLE(B7,136),3,l, M 1.3iPAINT(87,l 
36), 1 

1620 DRAW"Cl;XE2$;XF$;XF2f;XF3*;" 
1630 DRAW"C12jX6f;":PAINT(220,127),12 
1640 DRAW"C8|XG1«|"»PAINT(212,150),8 
1650 DRAWC12;XS2»¡- 
1660 GOSUB1750 
1670 U=USR0(U) 
1680 RETURN 

1690 ' VISUALIZA 'RETURN' 

1700 CF=P0INT(2,2):F0RI«1T02:F0RJ*1T015 

1710 COLORJ:PSET(100,2),CF:PRINT»1,"CRET 

URN3" 

1720 IFINKEY$»CHR$(13) THEN RETURN 210 E 
LSE NEXT 

1730 NEXT: COLORCF: PSET ( 100, 2) : PRINTil , ST 

RIN6$(8,219) 

1740 RETURN 

1750 PUTSPRITE0,(235,182),15:RETURN 



Tests de listados 



10 


- 58 


180 


- 88 


350 


-173 


520 


- 58 


20 


- 58 


190 


-253 


360 


-219 


530 


- 75 


30 


- 58 


200 


- 58 


370 


- 10 


540 


-214 


40 


- 58 


210 


- 95 


380 


- 58 


550 


- 88 


50 


- 58 


220 


-178 


390 


- 54 


560 


- 44 


60 


- 58 


230 


- 41 


400 


- 67 


570 


- 58 


70 


- 58 


240 


-103 


410 


-218 


580 


-180 


80 


- 67 


250 


- 60 


420 


-105 


590 


- 58 


90 


- 81 


260 


-134 


430 


- 58 


600 


-195 


100 


-183 


270 


- 93 


440 


-115 


610 


- 58 


110 


-166 


280 


- 2 


450 


-215 


620 


-148 


120 


-255 


290 


-203 


460 


-174 


630 


-150 


130 


-210 


300 


-211 


470 


- 22 


640 


-149 


140 


-144 


310 


-177 


480 


- 92 


650 


-151 


150 


- 34 


320 


-175 


490 


- 72 


660 


-246 


160 


-245 


330 


-119 


500 


- 74 


670 


-142 


170 


-210 


340 


-206 


510 


-177 


680 


- 58 




690 


- 58 


790 


- 58 


890 


- 58 


990 


- 78 


1090 


-142 


1190 


- 88 


1290 


-184 


1390 


- 38 


1490 


- 


1590 


-108 


1690 - 58 


700 
710 


-164 


800 


- 18 


900 


- 88 


1000 


-142 


1100 


- 58 


1200 


- 7 


1300 


-206 


1400 


-229 


1500 


-162 


1600 


- 5 


1700 -248 


- 58 


810 


- 58 


910 


- 44 


1010 


- 58 


1110 


- 88 


1210 


- 83 


1310 


-142 


1410 


-247 


1510 


-177 


1610 


-169 


1710 -195 


líV 


_ ¿r 

03 




- 58 




oía 
-220 


1 tina 
1020 


-218 


1120 


- 54 


1220 


-240 


1320 


- 58 


1420 


- 7 


1520 


- 52 


1620 


- 59 


1720 -176 


730 


- 58 


830 


- 98 


930 


-213 


1030 


-176 


1130 


- 70 


1230 


-216 


1330 


-230 


1430 


- 18 


1530 


-178 


1630 


- 23 


1730 -145 


740 


-255 


840 


- 2 


940 


- 27 


1040 


- 92 


1140 


-238 


1240 


-255 


1340 


- 99 


1440 


- 64 


1540 


-155 


1640 


- 42 


1740 -142 


750 


- 58 


850 


-101 


950 


- 63 


1050 


-105 


1150 


-175 


1250 


-210 


1350 


-206 


1450 


-100 


1550 


-227 


1650 


- 19 


1750 - 5 


760 


- 11 


860 


- 6 


960 


-196 


1060 


- 42 


1160 


-241 


1260 


-149 


1360 


- 68 


1460 


- 99 


1560 


- 18 


1660 


-119 


770 


- 58 


870 


-206 


970 


-124 


1070 


- 89 


1170 


-160 


1270 


- 12 


1370 


-148 


1470 


-170 


1570 


- 70 


1670 


-216 


TOTAL: 


7B0 


- 9 


880 


-142 


980 


-105 


1080 


- 45 


1180 


-189 


1280 


-145 


1380 


- 26 


1480 


-113 


1580 


-220 


1680 


-142 


20298 


















































c 



u 



A 



T 



E 



O 



Programa de juego por Fernando Villanueva Rubio 

Entretenida versión del popular juego de las cuatro en raya, en que tendrás 
que probar tu habilidad mental contra una máquina que no perdona. 



















• 
















* 




4» 


4S> 











10 'iMMunmifmmmui 

20 '$ t 
30 't PORTADA t 

40 'I I 

50 'tmmmmmtmttmt 

60 CLS:OPEN"grp:"ASIl 

70 COLOR 15, 1, IrSCREEN 3,1 

80 DRAM"BM40, 0" : COLOR 9: PRINT#1 , "cuatro" 

90 DRAW"BM40,8":COLOR 7:PRINTI1," 

100 A$="05L16CDEAAFGABCDFBA6FEDFFGADFC" 

110 B$="04L16CDEF6666ABBA6&666FEDC" 

120 PLAY A$,B$ 

130 SPRITE$(0)=CHR$(60)+CHR$(126)+CHR$(2 

19) +CHR* (255) *CHR$ (255) +CHR* (231 ) +CHRI ( 1 

26)+CHR*(60) 

140 FOR X=0 TO 180 

150 PUTSPRITE 1,(X,50),4,0 

160 NEXT 

170 FOR X=0 TO 140 



180 PUTSPRITE 2, (X, 50), 10,0 
190 NEXT 

200 FOR X=0 TO 100 

210 PUTSPRITE 3,(X,50),15,0 

220 NEXT 

230 PLAY A$,B$ 

240 FOR X=0 TO 60 

250 PUTSPRITE 4, (X, 50) , 13,0 

260 NEXT 

270 DRAWBH95, 75": COLOR 9: PRINT#1 , "por ■ 
280 DRAWBM95, 84" : COLOR 7:PRINTI1, "_„" 
290 DRAW-BM55, 150":COLOR 9:PRINT#1, "fivi 
r 

300 DRAW U BM55, 158" : COLOR 7:PRINTtl, " 



310 
320 
330 
340 
350 



mmtmtmmtmtm 
t t 

'* INSTRUCCIONES t 
I I 

ummmmimtmm 

360 FOR N=0 TO 2500: NEXT 

370 COLOR 2:CLS:SCREEN 2,1 

380 DRAN"BM40,0":PRINTI1, "INSTRUCCIONES" 

390 DRAW"Br¡40,3":PRINTtl," 

400 DRAN'BM40,20":PRINTtl,"Éste es un co 

nocido juego, que consiste solamente e 

n coló car cuatro fichas del lisio co 

lor en cualquiera de las direc ciones p 

osibles, evitando que el contrario lo 

consiga antes." 

410 FOR A=0 TO 3500:NEXT 



420 CL0SEI1 

430 'mtmtmmmtmmm 

440 't I 
450 'I DIBUJO TABLERO t 
460 't t 
470 'tllllllllttlIlttflItlIfUII 

480 COLOR 15,4,4:CLS 

490 OPEN"grp:"FOR OUTPUT ASI1 

500 DI M S(7,5) 

510 FOR X=0 TO 7:F0R Y=0 TO 5 

520 S(X,Y)=0:NEXT 

530 LINE(20,35)-(235,35),7 

540 LINE(20,180)-(235,180),7 

550 LINE(20,35)-(20,180),7 

560 LINE(235,35)-(235,180),7 

570 PAINT (100, 100) , 7,7 

580 LINE(20,180)-(235,180),1 

590 LINE(20,35)-(20,180),1 

600 LINE(235,35)-(235,180),1 

610 LINE(20,35)-(235,35),1 

620 FOR X=40 TO 216 STEP 25:F0R Y=50 TO 

165 STEP 23 

630 BEEP:BEEP 

640 CIRCLE(X,Y),8,1:PAINT(X,Y),1 
650 NEXT: NEXT 
660 Z=0 

670 FOR X=30 TO 205 STEP 25:Z=Z+1 
680 COLOR 1:PRESET(X, 1 84 ) : PRINTt 1 , Z 
690 BEEP: NEXT 

700 'mmmmtttmtmmmt 

710 't , 
720 't INTRODUCE FICHA t 




iKlll ¡I U 



730 t t 
740 UttUttUttttUttUMtttMtl 

750 1=0 

760 1=1+1: IF INT(I/2)=I/2 THEN C=6 ELSE 

C=12:IF I>48 THEN SOTO 1820 

770 CIRCLE ( 127, 20) , 10,C:PAINT( 127, 29), C: 

FOR A=0 TO 100:NEXT 

780 LINE(117,10)-(137,30),4,BF 

790 K$=INKEYI 

800 IF K$="" THEN 770 

810 K=VAL(Kf) 

820 IFK>8 THEN 790 

830 IFK<1 THEN 790 

840 X=(Kt40)-(K-l)tl5 

850 Y=165:H*0 

860 FOR N=l TO 6 

870 IF P0INT(X,Y)Ol THEN GOSUB 940 
880 Y=Y 
890 NEXT 

900 IF Y<50 BOTO 790 
910 PLAY"L20CEGB" 

920 CIRCLE<X,Y),8,C:PAINT(X, Y) ,C:60SUB 1 
010 

930 GOTO 760 
940 Y=Y-23:H*H+1 
950 RETURN 

960 tmmmmmmmmmu 

970 ' 

980 'PRIMERA PARTE DE LA SUBRRUTI NA 

DE COMPROBACION 
990 ' 

1000 immtummummmm 

1010 IF P01NT(X,Y)=6 THEN S(K-1,H)=1 
1020 IF P0INT(X,Y)=12 THEN S(K-1,H)=100 
1030 IF P0INT(X,Y)=1 THEN S(K-1,H)=0 
1040 IF K<8 AND H<5 THEN 1050 ELSE GOTO 
1110 

1050 IF S(K-1,H)=S(K,H+1) THEN GOTO 1060 
ELSE 60TO 1110 

1060 IF K<7 AND H<4 THEN GOTO 1070 ELSE 
60TO 1140 

1070 IF S(K-1,H)«8(KH,H+21 THEN GOTO 10 
80 ELSE GOTO 1140 

1080 IF K<6 AND H<3 THEN GOTO 1090 ELSE 
60TO 1170 

1090 IF S(K-l,H)=S(K+2,H+3) THEN GOTO 11 
00 ELSE 60TO 1170 

1100 IF S(K-1,H)=1 THEN 60T0 1800 ELSE G 
OTO 1810 

1110 IF K>3 AND H>2 THEN P=S(K-1,H)+S(K- 
2,H-l)*S(K-3,H-2)+S(K-4,H-3) ELSE 60T0 1 
240 

1120 GOSUB 1720 
1130 GOTO 1240 

1140 IF K>2 AND H>1 THEN P=S(K,H+1)+S(K- 



Í,H)+S(K-2,H-l)+S(K-3,H-2) ELSE GOTO 124 


1150 GOSUB 1720 
1160 60TO 1240 

1170 IF KM AND H>0 THEN P=S(K*1,H+2)*S( 
K,H*l)+S(K-i,H)*S(K-2,H-i) ELSE GOTO 124 


1180 GOSUB 1720 

1190 tmmttmttttmmmtmt 

1200 ' 

1210 'SEGUNDA PARTE DE LA SUBRRUTINA 
DE COMPROBACION 

1220 » 

1230 ummmmmmmmm* 

1240 IF K<8 THEN 1250 ELSE 60T0 1310 
1250 IF S(K-1,H)=S(K,H) THEN GOTO 1260 E 
LSE GOTO 1310 

1260 IF K<7 THEN 60T0 1270 ELSE GOTO 134 


1270 IF S(K-1,H)'S(K*1,H) THEN GOTO 1280 
ELSE GOTO 1340 

1280 IF K<6 THEN GOTO 1290 ELSE GOTO 137 


1290 IF S(K-1,H)=S(K+2,H) THEN GOTO 1300 
ELSE 60TO 1370 

1300 IF S(K-1,H)=1 GOTO 1800 ELSE GOTO 1 
810 

1310 IF K>3 THEN P=S(K-1,H)+S(K-2,H)+S(K 
-3,H)+S(K-4,H> ELSE 60T0 1440 
1320 GOSUB 1720 
1330 GOTO 1440 

1340 IF K>2 THEN P=S(K,H)*S(K-l,H)+S(K-2 
,H)+S(K-3,H) ELSE 60T0 1440 
1350 GOSUB 1720 
1360 60T0 1440 

1370 IF KM THEN P=S(K*1,H)*S(K,H)+S(K-1 
,H)*S(K-2,H) ELSE GOTO 1440 
1380 GOSUB 1720 

1390 tmmmmmmmumm 

1400 ' 

1410 'TERCERA PARTE DE LA SUBRRUTINA 

DE COMPROBACION 
1420 ' 

1430 ummmmnmmmmu 

1440 IF K<8 AND H>0 THEN 1450 ELSE GOTO 
1510 

1450 IF S(K-1,H)=S(K,H-1) THEN GOTO 1460 
ELSE GOTO 1510 

1460 IF K<7 AND HM THEN GOTO 1470 ELSE 
60T0 1540 

1470 IF S(K-l,H)=S(K+l,H-2) THEN GOTO 14 
80 ELSE GOTO 1540 

1480 IF K<6 AND H>2 THEN GOTO 1490 ELSE 
GOTO 1570 



1490 IF S(K-l,H)=S(K+2,H-3) THEN GOTO 1 
500 ELSE 60TO 1570 

1500 IF S(K-1,H)=1 THEN GOTO 1800 ELSE 
GOTO 1810 

1510 IF K=>4 AND H=<2 THEN P=S(K-1,H)+S( 
K-2,H+l)*S(K-3,H+2)*S(K-4,H+3) ELSE 50T0 
1640 

1520 GOSUB 1720 
1530 GOTO 1640 

1540 IF K>2 AND H<4 THEN P=S(K,H-1)+S(K- 
1,H)+S(K-2,H*1)+S(K-3,H*2) ELSE GOTO 164 


1550 GOSUB 1720 
1560 GOTO 1640 

1570 IF KM AND H<5 THEN P=S(K+l,H-2)+S( 
K,H-1)+S(K-1,H)+S(K-2,H+1) ELSE GOTO 164 


1580 GOSUB 1720 

1590 'mmmmmmmsmtm 

1600 ' 

1610 'CUARTA PARTE DE LA SUBRRUTINA 

DE COMPROBACION 
1620 ' 

1630 'mmummmmnmuu 

1640 IF H>2 THEN P-3(K-l,H)tS(K-i,H-l)*B 
(K-l,H-2)+S(K-l,H-3) ELSE RETURN 
1650 GOSUB 1720 
1660 RETURN 

1670 ttuumumnmmmtm 

1680 ' 

1690 'COMPROBACION DE CUATRO IGUALES 
1700 '• 

1710 uuunmmmmtmtmt 

1720 IF P=4 THEN GOTO 1800 
1730 IF P=400 THEN GOTO 1810 
1740 RETURN 

1750 'mmmmmttmmmm 

1760 'I t 
1770 '! SUBRRUTINA DE GANADOR t 
1780 't t 

1790 'tmmmmmmmmtm 

1800 LINE (20, 0) - ( 125, 20) , 1 1 , BF:DRAN"BM30 
, 6" : PRINTil , "GANAN ROJAS" : PLAY"L3205FBFB 
FBFBFBFB" : GOTO 1830 

1810 LINE(20,0)-(125,20),11,BF:DRAH"BH25 

, 6" : PRINTt 1 , "GANAN VERDES" : PLAY"L3205FBF 

BFBFBFBFB':G0TO 1830 

1820 LINE(20,0)-(170,20),11,BF:DRAW"BM25 

,6":PRINTI1,"N0 HAY MAS FICHAS" :PLAY"L32 

FBFBFBFBFBFBFB" 

1830 FOR A=0 TO 3500: NEXT 

1840 CLS: ERASE S 

1850 LINE(50,100)-(200,120),11,BF 

1860 DRAN"BM60,106" 

1870 PRINTI1,"0TRA PARTIDA? S/N" 




■ 



880 CLOSEtl 
1890 B$=INKEY$ 



1900 IF B$="' GOTO 1890 

1910 IF B$="N' OR B$=V THEN END 



1920 IF B$="S" 
LSE GOTO 1890 



OR B$=V THEN 60T0 480 E 



1 

TF.ñT DI T.T8TATM1 


10 - 58 190 -131 


370 -249 


550 


- 26 


730 


- 58 


910 


-196 


1090 


- 22 


1270 


-184 


1450 


-207 


1630 


- 58 


1810 - 76 


20 - 58 200 - 38 


380 -170 


560 


-200 


740 


- 58 


920 


-254 


1100 


-254 


1280 


- 46 


1460 


-204 


1640 


-212 


1820 - 95 


30 - 58 210 - 87 


390 -151 


570 


-170 


750 


- 73 


930 


-145 


1110 


- 2 


1290 


-163 


1470 


- 6 


1650 


- 89 


1830 - 46 


40 - 58 220 -131 


400 -229 


580 


-124 


760 


-199 


940 


-117 


1120 


- 89 


1300 


- 36 


1480 


-254 


1660 


-142 


1840 -209 


50 - 58 230 -184 


410 - 46 


590 


- 20 


770 


- 67 


950 


-14? 


1130 


-115 


1310 


-125 




JO 


la i v 


JO 


18j0 -167 


60 - 25 240 -254 


420 -233 


600 


-194 


780 


-242 


960 


- 58 


1140 


-246 


1320 


- 89 


1500 


-254 


1680 


- 58 


1860 -186 


70 -168 250 - 86 


430 - 58 


610 


- 90 


790 


- 74 


970 


- 58 


1150 


- 89 


1330 


- 60 


1510 


-114 


1690 


- 58 


1870 -128 


80 - 96 260 -131 


440 - 58 


620 


-152 


800 


- 26 


980 


- 58 


1160 


-115 


1340 


-117 


1520 


- 89 


1700 


- 58 


1880 -233 


90 - 18 270 -105 


450 - 58 


630 


-186 


810 


-141 


990 


- 58 


1170 


-240 


1350 


- 89 


1530 


- 5 


1710 


- 58 


1890 - 65 


100 -116 280 - 51 


460 - 58 


640 


-210 


820 


-222 


1000 


- 58 


1180 


- 89 


1360 


- 60 


1540 


-140 


1720 


- 95 


1900 - 36 


110 -120 290 - 60 


470 - 58 


650 


- 64 


830 


-217 


1010 


-238 


1190 


- 58 


1370 


-113 


1550 


- 89 


1730 


- 1 


1910 -203 


120 -184 300 -253 


480 - 54 


660 


- 90 


840 


-176 


1020 


- 83 


1200 


- 58 


1380 


- 89- 


1560 


- 5 


1740 


-142 


1920 -167 


130 -175 310 - 58 


490 - 17 


670 


-143 


850 


-126 


1030 


-232 


1210 


- 58 


1390 


- 58 


1570 


-138 


1750 


- 58 


140 -118 320 - 58 


500 -132 


680 


-238 


860 


-193 


1040 


-245 


1220 


- 58 


1400 


- 58 


1580 


- 89 


1760 


- 58 




150 - 76 330 - 58 


510 -207 


690 


-125 


870 


-186 


1050 


-172 


1230 


- 58 


1410 


- 58 


1590 


- 58 


1770 


- 58 




160 -131 340 - 58 


520 - 62 


700 


- 58 


880 


-161 


1060 


-174 


1240 


- 66 


1420 


- 58 


1600 


- 58 


1780 


- 58 




170 - 78 350 - 58 


530 - 96 


710 


- 58 


890 


-131 


1070 


-226 


1250 


- 58 


1430 


- 58 


1610 


- 58 


1790 


- 58 


TOTAL: 


180 - 81 360 - 79 


540 -130 


720 


- 58 


900 


-197 


1080 


-222 


1260 


-252 


1440 


- 16 


1620 


- 58 


1800 


-254 


21583 








































Programa de juego _ 
Por fin podréis emular a Balleste: 
ordenadores. Este interesante progr« 

la necesidad de una buena dosis de 



Llistosella 
Lte las pantallas de vuestros 

Lbina unos buenos gráficos con 
ibilidad. Adelante con él. 



HOVO 2 



PAR 



TIRADA N 
ü 



_ 







10 'tmtttmmtm 



20 'I 
30 '! 
40 'I 
50 'I 
60 'i 
70 'I 
80 'I 
90 't 
100 't 
110 '! 



GOLF 



por Ll.A. 



Llistosella 



para 



HSX-EXTRA t 

120 mmtmtmm 

130 '12425 BITS 

140 SCREEN2: C0L0R15,1,1 

150 DEFSN6A-Z 

160 CLS:KEYOFF 

170 'DEFINICION DE SPRITES 

180 F0RI=1T08: READA 



190 A$=A$*CHR$(A):NEXT 
200 SPRITE$(0)=A$ 
210 F0RI=1T08: READA 
220 B$=B$+CHR$(A):NEXT 
230 SPRITE$(1)=B$ 
240 F0RI=1T08: READA 
250 D$=D$+CHR$(A):NEXT 
260 SPRITE$(2)=D$ 
270 F0RI=IT08:READA 
280 E*=E$*CHR$(A):NEXT 
290 SPRITE$(3)=E$ 
300 FOR I=1T0 8: READA 
310 F$=F$+CHR$(A):NEXT 
320 SPRITE$(4)=F$ 
330 FOR I=1T0 8-.READ A 
340 GI=6$+CHR$(A):NEXT 
350 SPRITE$(5)=G$ 
360 FOR I=1T0 8:READ A 



— 





DOñQC 



370 H*=H$*CHR$(A):NEXT 

380 SPRITE$(6)=H$ 

390 FOR I=1T0 8: READ A 

400 J$*J$*CHR$(A):NEXT 

410 SPRITE$(7)=J$ 

420 FOR I=1T0 8: READ A 

430 K$=K$+CHR$(A):NEXT 

440 SPRITE$(8)=K$ 

450 FOR I=1T0 8: READ A 

460 LI=L$+CHR$(A):NEXT 

470 SPRITE* (9) =L$ 

480 FOR I=1T0 8: READ A 

490 H$=H$+CHR$(A):NEXT 

500 SPRITE$(10)=H$ 

510 FOR I=1T0 8: READ A 

520 N$=N$+CHR$(A):NEXT 

530 SPRITE$(11)=N$ 

540 FO=1:JR=0:JP=0:GO=70 
550 X=200:Y=90:I=1 

560 OPEN'SRP: B AStl 

570 ttm SELECCION MODO DE JUEGO Y CAB 

ECERA 

580 SCREEN3 
590 FORK=0TO2 
600 C=ItK 

610 FORI=4T028STEP2 
620 'ItttttCABECERA 

630 PRESET (1+I+C, 30*11 1.3+Ct 1.3) ¡COLORI/ 
2:PRINT#1, , 6GLF" 

640 NEXTI : NEXTK: FORK=1TO30: COLOR0: PRESET 
( 95 , 1 50 ) : PR I NTI 1 , " 60LF ■ : FOR I = 1 TO30 : NE X T I 
:C0L0R15:PRESET(95, 150) :PRINTI1, "G0LF':N 
EXTK:K=0 

650 FORI=1TO2000:NEXT 
660 IFV$= , C"ORV$= , c , THEN4190 
670 SCREEN0:COLOR13,1,1:LOCATE10,10¡PRIN 
T" INSTRUCCIONES ? (S/N)' 
680 A*=INKEY$ 
690 IF A$="THEN680 
700 IF A$='N , ORA$=VTHEN720 
710 IF A«='S'ORA$="5 , THEN6OSUB3540 
720 GOSUB 4190 
730 'tSSISIDEF COOR INIC 
740 SCREEN2:C0L0R 15,1,1 
750 Q=INT((RND(-TIME)tl5)+35) 
760 N=INT((RND(-TINE)ll00)+35) 
PELOTA 

770 IFN>70AND«<100THEN6OTO 760 
780 H=Q:N=« 

790 E=INT((RND(-TIHE)t50)+110) 

800 R=INT ( (RND (-TIHE) 135) +60) ' — COOR. 

HOYO 

810 Q=INT((RND(-TINE)I50)+100) 

820 P=INT((RND(-TIH E)t30)+90) '— C00R. 



-COOR. 



HOYO EN GREEN 

830 THY=INT(RND(-TIHE)tl00)+30 

840 ' GENERACION PAR 

850 IFE-Q>85ANDE-Q<110THENPAR=4:GOTO 880 
860 IFE-QM10THENPAR=5 " 
870 IFE-Q<=85THENPAR=3 
880 '—-DIBUJO 

890 LINE(212,20)-(226,150),11,BF 

900 L I NE ( 222 , 40 ) - ( 226 , 40) , 1 : PSET ( 233 , 37 ) 

:PRINTI1,'0' 

910 LINE (222, 95) - (226, 95) , 1 : PSEK233, 95) 
:PRINTI1,"60' 

920 LINE(222,120)-(226,120),1:PSET(233,1 
20):PRINTI1,"80" 

930 LINE (222, 140) - (226, 140) , 1 : PSET (233, 1 
40):PRINTI1,'100' 

940 PSET ( 1 10, 1 ) : PRINTfl , "PAR=» : PSET (142, 
1) :PRINT#1,PAR 



950 COLORI: PSET (6B, 1 ) : PRINTt 1 , 



' :CO 



L0R15, 1, 1 

960 PSET(30,1):PRINTI1,'HOYO ':PSET(68,1 
):PRINTIl,FO 

970 PSET(170,1):PRINTI1, "TIRADA N.':PSET 

(233,1):PRINTI1,TI 

980 LINE (30,20)-(19B,148),15,B 

990 LINE (32,22)-(195, 146) ,3,BF 

1000 GOSUB 2910 

1010 HX=Q: HY=H 

1020 PUT SPRITE 3,(Q,N),C3,3 

1030 PUT SPRITE 9,(E,R-10),11,9 

1040 PUT SPRITE 1,(H,N),15,1 'BOLA SEGUN 

DO JUGADOR 

1050 IFJU=1THENC1=8:C3=15:G0T0 1090 
1060 IF JU=2 ANDJP=0THENC1=8:C2=15:C3=15 
1070 IF JU=2 ANDJPM THENC1=15:C2=8:C3=1 
1080 LINE(10,170)-(15,175),15,B:PSET(20, 
170) :C0L0RC2:PRINTI1,'J.2 ":C0L0R15, 1, 1 
1090 LINE(10,160)-(15,165),15,BF: PSET(2 
0,160):COLORCl:PRINTtl,'J.l ":C0L0R15,1, 
1 

1100 LINE(70,160)-(70,190),11 

1110 PSET(10,180):COLOR10:PRINTtl,'N. HO 

Y0":C0L0R15,1,1 

1120 PUT SPRITE3, (M-10, N-6) , C3, 3 

1130 PUT SPRITE 0, (X,Y),15,0 

1140 C0L0R15: PSET (2, 87) : PRINTt 1 , *PALO* 

1 150 PSET (E-3, R-3) : COLORI : PRINTI1 , ■ • ' 

1160 LINE(7,97)-(18,108),11,B 

1170 'ItltlNICIO DEL BUCLE PRINCIPAL! 

1180 IH=IH*2 

1190 IF IN>16 THEN IHMM+3 

1200 LINE(220,40)-(220,40+IH),l:IF IH>HA 

THENIH=l:LINE(220,40)-(220,50*HA),lliLI= 

0:GOSUB134« 




1210 D=STICK(TJ) 

1220 A$=INKEY$:IF P$="THENIH=0:6OSUB333 


1230 IF DO0THENGOSUB1390 

1240 IFSTRI6(TJ)«-IANDP$O'"THEN6OSUB170 



1250 IF A$O ,, THEN1270 
1260 GOTO 1180 

1270 IF A$='L'THEN HA=100:K1=.6:K2=.4:P$ 

=*L" :COLORl: PSET (10, 100) : PRINTil , "1": COL 

0R7: PSET ( 10, 100) : PRINTtl , P$ 

1280 IF A$="N'THEN «A=80:K1=1.2:K2=.8:P$ 

='N' : COLORI : PSET ( 10, 100) : PRINTil , "|" : COL 

OR7:PSET(10, 100) ¡PRINTil, P$ 

1290 IF Af="C'THEN HA=60:K1=1.8:K2=1.2:P 

$= , C , :COLQRl:PSET(10,100):PRINTIl, , r:CO 

L0R7: PSET ( 10, 100) : PRINTil , P$ 

1300 M=" 

1310 GOTO 1180 

1320 'IttttlFIN BUCLE PRINC 

1330 '— SUBR. INDICADOR TIRO 
1340 LINE(217,26)-(221,30),6,BF 
1350 FORKL=1TQ100:NEXTKL 
1360 LINE(217,26)-(221,30),11,BF 
1370 RETURN 

1380 '-—SUBR. HOV. CURSOR 

1390 IF X*>20 AND X<=200 AND Y*<10 THEN 

GOSUB 1490 

1400 IF X>200 THEN X=200 

1410 IF X=>200AND Y>=10 AND Y=<150THEN 6 

OSUB 1540 

1420 IF Y>150 THEN Y=150 

1430 IF X=>20 AND X<=200 AND Y=>150THEN 

GOSUB 1590 

1440 IF X<20 THEN X=20 
1450 IF X*<20 AND Y>=10 AND Y=<150THEN 6 
OSUB 1640 

1460 IF Y<10 THEN Y=10 
1470 PUT SPRITE 0,(X,Y),15,0 
1480 RETURN 1211 




m^ : % PDÍÍÍZDOñOC 



1490 IF D=3 THEN X=X+10 

1510 IF D=7 THEN l»M0 

1510 IF D=l THEN X=X+2 

1520 IF D=5 THEN X=X-2 

1530 RETURN 

1540 IF D=3 THEN Y=Y+10 

1550 IF D=l THEN Y=Y*2 

1560 IF D=5 THEN Y=Y-2 

1570 IF D=7 THEN Y=Y-10 

1580 RETURN 

1590 IF D=3 THEN M-ll 

1600 IF D=7 THEN X=X+10 

1610 IF D=l THEN X=X-2 

1620 IF D=5 THEN X=X+2 

1630 RETURN 

1640 IF D=3 THEN Y«Y-10 

1650 IF D=7 THEN Y=Y+10 

1660 IF DM THEN Y=Y-2 

1670 IF D=5 THEN Y=Y+2 

1680 RETURN 

TTS90 ' TIRO Y DIRECCION 

1700 IF K1=.6THEN IP=INT(IH-(IH/4)):IX=I 

H:IM=0:RF=IP/3:RT=RFt2:RY=RF/2 

1710 IF K1=1.2THEN IP=INT(IN-(IH/4)):IX= 

IM: IH=0: RF=IP/2. 5: RT=RFt2: RY=RF/4 

1720 IF K1=1.8THEN IP=INT < IM- ( IH/4) ) : IX= 

IH:IH=0:RF=IP/2:RT=RFt2:RY=RF/2 

1730 TI=TI+1:C0L0R13: PSET(223,60):PRINT 

•l f INTCIX) t COLORIS, 1 9 1 

1740 LINE(228,57)-(255,70),11,B 

1750 IF JR=0THEN PUT SPRITE3, (10,200) ,0, 

3 ELSEPUT SPRITE7, (10,220), 0,7 

1760 IF C3=15THEN C4=l 

t770 mm C4*ti 

1780 IF JR=0THEN PUT SPRITE2, (Q-7,N-6),C 
3,2 ELSEPUT SPRITE8, (Q-8,N-8),C4,8 
1790 QX=(X+4)-0 
1800 HY«(Y*4W 

1810 IF ABS <0X ) >=ABS ( NY ) THENDP=ABS (QX ) EL 
SEDP=ABS(MY) 

1820 Q7=QX/(DP+lE-03):N7=NY/(DP+lE-03) 

1830 F0RI=1T0IP '-—INICIO DEL TIRO 

1840 QK=P0INT(Q+2,W+2) 

1850 Q=Q+Q7;W=W+«7 

1860 IF I >RF AND I < RTTHENS0=S0+K 1 

1870 IF KRFTHENSO=SO-Kl 

1B80 IF I=RTTHENSO=0 

1890 IF DRT-1ANDKRT+1 AND QK=7 OR I >RT 
-lAMDKRT+1 AND 0K=14 THEN I=IP:60T0 195 



1900 IF I>RT*RYTHENS0=SQ*K2 

1910 IF I>RT AND K (RT+RY) THENS0-S0-K2 

1920 IF JR*1 THENSO=0:6OTO 1940 



1930 PUT SPRITE 12, (O,*), 13,1 
1940 PUT SPRITE 1, (Q f N+SO-1) , 15, 1 
1950 NEXTI 

1960 QK=POINT(Q+2,N+2) 
1 970 IFQK=30RQK*70RQK= 14THENT I =TI +1 
1980 IF Q>190 THENQ=t90:IP=0:TI=TI+l 
1990 IF Q<35 THENQ=35:IP=0:TI=TI+t 
2000 IF M<25 THENN>25iIP*ltTI*T!+l 
2010 IF N>140 THENN=140:IP=0:TI=TI+1 
2020 IFJR=0THENPUT SPRITE3, (Q-10,M-6) ,C3 
,3ELSEPUTSPRITE8,(Q-10,N-10),C4,7:6OSUB2 
520 

2030 IFJRMTHEN PUT SPRITE2, (107,206) ,0, 
2ELSEBOSUB2520 

2040 COLORI: PRESET(230,60):PRINTI1,'« 

2050 PSET(233, 1):PRINT#1,'BB':C0L0R15, 

1,1:PSET(233,1):PRINTI1,TI 

2060 IFQK=12ANDJR=0JHENIP=0:LINE (220, 40) 

-(220,150),11:GOTO 2390' PASO AL 6REE 

N 

2070 IFQK=1AND9>185ORQK=1ANDQ<40ORQK=1AN 

DN>135ORQK=lANDtK30THENIH=0:LINE(220,40) 

-(220,150), ll:GOTO 2090 

2080 IFQK=1THENIP=0:LINE(220,40)-(220,15 

0),11:6OTO 2150' --ACIERTO DESDE EL CAMPO 

2090 LINE(220,40)-(220,150),11 

2100 LINE(217,26)-(221,30),6,BF 

2110 FORKL=1TO100:NEXTKL 

2120 LINE(217,26)-(22t,30),U,BF 

2130 RETURN 

2140 * — SUBR. ACIERTO 

2150 FORI=1TO300:NEXT: F0RI=1T031:PUT SP 
RITE I, (10,220), 0,1:NEXT 
2160 Jfi«0 

2170 PSET(70,110):COLORl:PRINTtl,'HAS AC 
ERTADO' 

2180 FOR 1=1 TO 1000:NEXT 

2190 COLORI: PSET(140,1):PRINTI1,W:C 

0L0R15, 1, 1 

2200 F1=FQ:IF F1>9THENF1=F1-10 

2210 COLORll:PSET(6O,180):PRINTtl,Fl:COL 

0R15,1,1 

2220 IF TKPARTHENKL=13:ELSEKL=15 
2230 IFJP=06OTO 2260 
2240 PSET(6O,170):CQLORKL:PRINTI1,TI-PAR 
i COLORIS 

2250 T2T=T2T+TI-PAR:60T0 2290 

2260 PSET (60, 160) : COLORKL : PRINTI1 , TI-PAR 

¡C0L0R15 

2270 T1T=T1WI-PAR 

2280 COLORI: PRESET(45,160):PRINTI1,'B 
r:COLOR15:PSET(45,160):PRINTIl,TlT:GOTO 



2300 

2290 IFJP=1THEN COLORI: PRESET(45,170): 
PRINTI1,W.COLOR15:PSET(45,170):PRINT 
ll,T2T 

2300 PRESET ( 233, 1 ) : COLORI : PRINTI1 , ' HT 
¡COLORIS, 1,1 

2310 LINE (32,22)-(196,146),3,BF 

2320 TI=0:X=200:Y=70 

2330 IF JP=i THEN F0=F0+1 : 60=60+10: IFFO> 

PHTHENFORI=1TO2000:NEXT:6OTO3370 

2340 IF JU=1 THEN FQ=F0*1: 60=60*10: IFFO) 

PHTHENFORI=1TO2000:NEXT:6OTO3370 

2350 IF JU=1 THENJP=0:6OTO 750 

2360 IF JP=0THENJP=1:Q=H:N=N:6OTO 890 

2370 IF JP=1THENJP=0:GOTO 750 

2380 '— - SUBR. ENTRADA 6REENI 

2390 FOR1=1TO300:NEXT: FOR 1= IT031 : PUT SP 

RITE 1,(10, 220), 0,1:NEXT 

2400 JR=1 

2410 GOSUB2600 

2420 Ol=INT((RND(-TI«E)t40)+20) 
2430 Pl=INT((RNDí-TME)t20)+20> 
2440 Q=0-01:N=P+P1 
2450 GOSUB2520 
2460 PUT SPRITE 1, (Q,M , 15, 1 
2470 PUT SPRITE10, ( O, P-20 ) , 1 1 , 1 
2480 PUT SPRITE11, (G , P- 1 2) , 1 1 , 1 1 
2490 CIRCLE(0,P),4,1,,,.5 
2500 PAINT(0,P),1 
2510 GOTO 1180 

2520 ' HOMBRE EN GREEN 

2530 PUT SPRITE14, (Q-10,N-22) ,C3,4 

2540 PUT SPRITE15,(Q-10,N-14),C3,5 

2550 PUT SPRITE16,(Q-10,N-6),C3,6 

2560 IF JU=2THEN C4=t5 ELSE C4=l 

2570 PUT SPRITE 7, (Q-10,N-6) ,C4,7 

2580 IF JPM" "THEN PUT 8PRITE B,(Q,N+1 

6),C4,8:F0R 1=1 TO100:NEXT:PUT SPRITE7, ( 

Q,N+6),C4,7 

2590 RETURN 

2600 '—DIBUJO GREEN 

2610 LINE (30,20)-(198,70),7,BF 

2620 LINE (30,20)-(200,70),2,B 

2630 LINE (30,70)-(198,148),3,BF 

2640 RESTORE3320 

2650 FORI=40TO195STEP23 

2660 READA 

2670 CIRCLEd, A), 30,2,. 8,2.3,1 
2680 NEXT 

2690 CIRCLE(50,40),10,14,,,.3 
2700 PAINT(50,40),14 
2710 CIRCLE(55,45),10,14,,,.3 
2720 PAINT(55,45),14 



^ f / t\üuf\mh iD 



2730 CIRCLE(95,30),10,14,,,.3 

2740 PAINT(95,30),14 

2750 CIRCL£(100,35),10,14,,,.3 

2760 PAINT(100,35),14 

2770 CIRCLE(108,32),10,14,,,.3 

2780 PAINT(108,32),14 

2790 LINE (31,71) -(198, 71), 2 

2800 PftINT(90,60),2 

2810 PAINT(90,90),3 

2820 CIRCLE(130,95),50,12,,,.3 

2830 PAINT(130,95),12 

2840 CIRCLE(110,125),70,12,,,.3 

2850 PAINTÍ110, 115) , 12 

2860 CIRCLE(50,95),30,12,4.9,6.2,.5 

2870 CIRCLE(140,105), 70, 12,5.92,. 14, 1.7' 

220,105-3,3.5 

2880 PAINTÍ78, 102) , 12 

2890 PAINT(170,110),12 

2900 RETURN 

2910 '--DIBUJO HOYO 

2920 LINE (30,20)-(198,148),3,BF 

2930 CIRCLE(E,R),35,2,,,.5 

2940 PAINT(E,R),2 

2950 CIRCLE(E-30,R+10),40,2,,,.3 

2960 PAINT(E-45,R+10),2 

2970 CIRCLE(E-30,R-10),35,2,,,.3 

2980 PAINT(E-45,R-10),2 

2990 C1RCLE(E-55,R),25,2,,,.5 

3000 PAINT(E-75,R),2 

3010 C1RCLE(E+5,R+15),25,2,,,.5 

3020 PAINT(E,R+25),2 

3030 CIRCLE(E-40,R+5),6,14,,,.3 

3040 PAINT(E-40,R+5),14 

3050 CIRCLE(M,N+2>,10,2,„.5 

3060 PAINT(H,N),2 

3070 FQRIM5TO40 STEP-1 

3080 CIRCLE(E-20,R), 1,14,5.7,. 6,. 25 

3090 CIRCLE(E+5,R), 1-18,14,2,3,. 45 

3100 CIRCLE(E+i,R), 1-15,14,4,4.5,. 45 

3110 CIRCLE(E,R), 1-10,7,4.5,5.5,. 7 

3120 NEXT 

3130 CIRCLE(E-45,R-10),20,7,,,.2 

3140 PAINT(E-45,R-10),7 

3150 CIRCLE(E-20,R-15),15,7,,,.2 

3160 PAINT(E-20,R-15),7 

3170 CIRCLE(E,R),12,12,,,.4 

3180 PAINT(E,R),12 

3190 RETURN 

3200 DATA57,57, 17, 127, 185, 185,41,41 
3210 DATA192,192,192,0,0,0,0,0 
3220 DATA112,32,U2,113,63,80,80,144 
3230 DATA142,68,46,30,14,10,10,9 
3240 DATA60, 60, 60, 24, 60, 126, 255, 189 
3250 DATA189,189,212,126,60,60,62,54 



3260 DATA118, 118, 118, 118, 198, 198, 198, 198 

3270 DATA16,32,32,32,32,64, 64,64 

3280 DATA8,4,4,4,4,2,2,2 

3290 DATA 240,240,128,128,128,128,128,12 

8 

3300 DATA 128,240,240,240,240,128,128,12 
8 

3310 DATA 128,128,128,128,128,128,128,12 
8 

3320 DATA8f,85,80,75,80,75,80,85 

3330 COLQR6:PRESET(120,170)¡PRINTtl,"ES 

COJE PALO' : COLOR0: PRESET ( 1 10, 170) : PRINTI 

3340 A$=INKEY$ 

3350 IF A$<>"L"ANDA$<>'N"ANDA$O b C'THEN3 
330 

3360 RETURN 

3370 ' PUNTUACION I RECORD 

3380 CLS:FORI=1TO400:NEXT:SCREEN0 
3390 IF RE-<T1T AND RE=<T2T THENL0CATE5, 
20:PRINT"RECORD=";RE; "PUNTOS ";N0$:6QT0 
3430 

3400 IF T1KT2T AND TI T< RE THENRE-T1T: P 
G=A1:INPUT'N0HBRE DEL JUG. 1";N0$ :L0CAT 
E5, 20: PR INT -REC0RD=" ; RE; "PUNTOS ";NO$ 
3410 ' 

3420 IF T2KT1T AND T2T<RE THENRE=T2T: P 
6=A2:INPUT"N0HBRE DEL JU6. 2";N0I :L0CAT 
E5, 20: PRINT"RECORD=" ;RE; "PUNTOS " ; NO$ 
3430 COLOR 15,1,1: L0CATE1 , 5: PRINT" JUGADO 
R 1 HAS ACABADO CQN';T1T; "PUNTOS 
3440 IF JU=1 THEN 3470 
3450 L0CATE1, 10: PRINT" JUGADOR 2 HAS ACAB 
ADO CON" ;T2T; "PUNTOS 
3460 IF T1T=T2TTHEN L0CATE5, 15: PRINT'EST 
AIS EMPATADOS; HACED OTRA 
PARTIDA" 

3470 L0CATE1,25:PRINT"PARA CONTINUAR APR 
IETA LA t-C-f 

3480 V$=INKEY$:IF V$=""THEN3480 
3490 G0=7§ 

3500 IF V$='C"ORV$="c"THENFO=l:JR=0:TlT= 

0:T2T=0:TI=0:JP=0:P$="":6OTO740'ttmtl! 

nuuxnxxnux 520 CLOSE 

3510 GOTO 3480 

3520 CLS: END 

3530 '«INSTRUCCIONES t 

3540 SCREEN2¡FORI=1TO200:NEXT¡ OL=l 

3550 IX=100 

3560 IF OL =1 THENK1 =. 6:K2=. 4: C0L0R15: P 
SET(30,30):PRINTI1,"PALO LARGO (L) BO 
TE A 2/3" 

3570 IF OL =2 THENK1 M.2:K2=.8:C0L0R13: 
PSET (30, 40) : PRINTtl , "PALO NORMAL (N) B 



OTE A 3/4" 

3580 IF 0L=3THENK 1= 1 . 8 : K2= 1 . 2: COLOR 10: PS 
ET (30, 50) : PRINTtl , "PALO CORTO (0 NO 
BOTA" 

3590 IF 0L>3 THEN3890 
3600 C0L0R7 : PSET ( 30 , 1 50 ) : PR I NTI 1 , " T I RADA 
MAXIMA DE LOS PALOS" 
3610 IFKl=.6THENRF=IX/3¡RT=RFI2¡RY*RF/2 
3620 IFKl=1.2THENIX=IX-(IX/5):RF=IX/2.5¡ 
RT=RFt2:RY=RF/4 

3630 IFK1M.8THENIX=IX-((IX/5)$2):RF=IX/ 

2:RT=RFI2:RY=RF/2 

3640 LINE(1,105)-(250,105),12 

3650 LINE(100,105)-(100,110),12 

3660 LINE(180,105)-(180,110),13 

3670 LINE(160,105)-(160,U0),10 

3680 LINE(200,105)-(200,110),15 

3690 PSET (90, 1 15) : PRINTtl , 

3700 C0L0R15: PSET ( 190, 1 15) : PRINTtl, " 100 a 

3710 COL0R13: PSET ( 170, 1 15) : PRINTtl , ■80- 

3720 COLOR10: PSET(150, 115) ¡PRINTtl, "60" 

3730 PUTSPRITE2, (90,220),0,2 

3740 PUT SPRITE3, (90,95),15,3 

3750 FORI=1TO400¡NEXT 

3760 PUT SPRITE3, (90,220) ,0,3 

3770 PUTSPRITE2, (90,95), 15,2 

3780 FORIMTOIX 

3790 IF I >RFANDKRTTHENSQ=SO+Kl 

3800 IF KRFTHENSO=SO-Kl 

3810 IF I>RT+RYTHENS0=S0+K2 

3820 IF I>RT AND K (RT+RY) THENS0=S0-K2 

3830 IFOL-1THEN PUT SPRITE1, (100+1, 100+S 

0) ,15,1: GOTO 3860 

3840 IF0L=2THEN PUT SPRITE12, (100+1,100+ 
SO), 13,1 :60T0 3860 

3850 IF0L=3THEN PUT SPRITE13, (100+1,100+ 
SO),10,1:6OTO 3860 
3860 NEXT 
3870 OL=OL+l 
3880 GOTO 3550 

3890 K1=0;K2=0 :IX=0:IN=0:RF=0:RT=0:RY=0 
:SO=0:OL=0 

3900 FOR I = 1 TO 1 500 : NEXT : SCREEN0 
3910 SCREEN2; PSET (70, 180) ¡PRINTtl, "PENA 
L I Z AC I ONES " : C0L0R7 : PSE T (20,40) ¡PRINTtl, 
"LAGO Y " ; : COLOR 14 : PR I NTt 1 , " BUNKER , +2 Y 
NO REBOTA" 

3920 C0L0R3: PSET(20,60) ¡PRINTtl, "TERREN 

O LISO, +2 Y REBOTA' 

3930 C0L0R3: PSET ( 20, B0Í : PRINTtl , "FUERA 

DEL LIMITE, +2 Y SE PARA" 

3940 CIRCLEÍ50, 120) , 10,7, , , .5 

3950 CIRCLE (100, 120) , 7, 14, , , . 5 

3960 PAINT(50,120),7 





©r 

/\«J 




3970 PAINT(100,120),14 

3980 LINE (200,110)-(225,130),3,BF:L1NE< 

225,110)-(225,130),l:LINE(226,110)-(228, 

130),14,BF 

3990 LINE (160,110)-(185,130),3,BF 
4000 F0RI*1 TO4000:NEXT 
4010 SCREEN2 

4020 TC$=-R31G10L6BU3R5H565R5BD3L6H10" 

4030 DRAWBH112 f 20A0C7"+TC$ 

4040 PAINT(114,22),7 

4050 DRAtTBH145,23A3C7"+TC$ 

4060 PAINT(140,28),7 

4070 DRA«"BH143,57A2 , +TC$ 

4080 PAINT(140,56),7 

4090 DRA« , BH110,54A1 , *TC$ 

4100 PAINT(113,50),7 

4110 PSET(105,l):PRINTtl,"HORARIO":PSET( 
114, 10) :PRINTil, "LENTO" 
4120 PSET(93,60):PRINT#1,"ANTIHORARIO":P 
SET ( 1 17, 70) : PRINTil , "LENTO" : PSET í 153, 30) 

¡PRINTil, "HORARIO":PSET(153,40):PRINTil, 
"RAPIDO" 

4130 PSET(60,25)¡PRINTtl,"ANTI":PSET(50, 



35) :PRINTtl , "HORARIO": PSET (55, 45) :PRINTt 
1, "RAPIDO" 

4140 C0L0R13: PSET(18, 125) : PRINTil , "LA P 
ELOTA SE HUEVE HACIA EL CADDYE, QUE 
SE HUEVE CON LAS TECLAS DEL CURSOR 
COHO SE INDICA.ELIJ.UEN ROJO INDICA 
EL JU6. QUE ESTA JUGANDO. CON 
2 JU6. Y JOYSTICK,USAD UN SOLO JQYSTIC 
K (EL A O EL 1) 

4150 PUT SPRITE 0, (125,100) ,15,0 

4160 COLOR10: PSET í 105, 1 12) : PRINTil , "CAD 

OYE" 

4170 FOR I=1TO9000:NEXT 
4180 RETURN 

4190 SCREEN0:LOCATE10,1:PRINT"ESCOGE OPC 
ION" 

4200 LOCATE10,5:PRINT"1 -TECLADO , 1JU6. , 
9 HOYOS' 

4210 LOCATE10,7:PRINT"2 -TECLADO ,1JUG., 
18 HOYOS" 

4220 LOCATE10,9:PRINT"3 -TECLADO ,2JU6., 
9 HOYOS" 

4230 LOCATE10,U:PRINT'4 -TECLADO ,2JU6. 



,18 HOYOS" 

4240 LOCATE10, 13:PRINT"5 -JOYSTICK. 1JUG. 
, 9 HOYOS" 

4250 LOCATE10,15:PR1NT"6 -JOYSTICK, 1JUS. 
,18 HOYOS" 

4260 LOCATE10,17:PRINT"7 -JOYSTICK, 2JU6. 
, 9 HOYOS" 

4270 LOCATE10, 19:PRINT"8 -JOYSTICK, 2JU6. 
,18 HOYOS" 
4280 INPUT A 

4290 IF A>8 ORA< 1THEN 4280 

4300 ON A GOSUB 4320,4330,4340,4350,4360 

,4370,4380,4390 

4310 A=0: RETURN 

4320 TJ=0:JU=1:PH=9 ¡RETURN 

4330 TJ=0:JU=1:PH=18:RETURN 

4340 TJ=0:JU=2:PH=9 : RETURN 

4350 TJ=0: JU=2: PH=18: RETURN 

4360 TJ=1:JU=1:PH=9: RETURN 

4370 TJ=1: JU=1 : PH=18: RETURN 

4380 TJ=1:JU=2:PH=9 : RETURN 

4390 TJ=1:JU=2:PH=18 ¡RETURN 



TEST DE LISTADO 



I 



10 


- 58 


290 


-168 


570 


- 58 


850 


- 85 


1130 


-108 


1410 


- 46 


1690 


- 58 


1970 


-105 


2250 


-209 


2530 


-237 


2810 


- 78 


20 


- 58 


300 


-192 


580 


-217 


860 


- 47 


1140 


-105 


1420 


- 62 


1700 


-179 


1980 


-183 


2260 


-197 


2540 


-231 


2820 


-253 


30 


- 58 


310 


-152 


590 


-185 


870 


- 22 


1150 


- 84 


1430 


-105 


1710 


-102 


1990 


-131 


2270 


- 4 


2550 


-227 


2830 


-130 


40 


- 58 


320 


-170 


600 


-185 


880 


- 58 


1160 


-115 


1440 


- 58 


1720 


-108 


2000 


-123 


2280 


-136 


2560 


-221 


2840 


- 27 


50 


- 58 


330 


-192 


610 


-194 


890 


- 49 


1170 


- 58 


1450 


-224 


1730 


- 36 


2010 


- 95 


2290 


-200 


2570 


-222 


2850 


-130 


60 


- 58 


340 


-154 


620 


- 58 


900 


-106 


1180 


- 31 


1460 


- 40 


1740 


-237 


2020 


- 72 


2300 


-229 


2580 


- 77 


2860 


- 91 


70 


- 58 


350 


-172 


630 


- 98 


910 


- 72 


1190 


- 40 


1470 


-108 


1750 


- 64 


2030 


- 97 


2310 


- 55 


2590 


-142 


2870 


-247 


80 


- 58 


360 


-192 


640 


-232 


920 


-149 


1200 


-185 


1480 


- 90 


1760 


- 96 


2040 


-138 


2320 


-204 


2600 


- 58 


2880 


- 85 


90 


- 58 


370 


-156 


650 


- 85 


930 


-250 


1210 


-195 


1490 


- 85 


1770 


- 96 


2050 


- 2 


2330 


-146 


2610 


- 13 


2890 
2900 


-185 


100 


- 58 


380 


-174 


660 


-216 


940 


-149 


1220 


- 


1500 


- 90 


1780 


-144 


2060 


-109 


2340 


-151 


2620 


-196 


-142 


110 


- 58 


390 


-192 


670 


- 45 


950 


- 26 


1230 


-166 


1510 


- 77 


1790 


-138 


2070 


-202 


2350 


- 96 


2630 


-137 


2910 


- 58 


120 


- 58 


400 


-160 


680 


- 64 


960 


-204 


1240 


-186 


1520 


- 82 


1800 


-152 


2080 


-225 


2360 


-125 


2640 


-158 


2920 


- 87 


130 


- 58 


410 


-177 


690 


-181 


970 


-247 


1250 


-244 


1530 


-142 


1810 


- 45 


2090 


-147 


2370 


- 91 


2650 


-158 


2930 


-158 


140 


-105 


420 


-192 


700 


- 40 


980 


- 27 


1260 


- 55 


1540 


- 87 


1820 


- 44 


2100 


-188 


2380 


- 58 


2660 


-200 


2940 


- 18 


150 


- 58 


430 


-162 


710 


-206 


990 


- 54 


1270 


-155 


1550 


- 79 


1830 


-120 


2110 


-186 


2390 


-154 


2670 


-100 


2950 


-172 


160 


-144 


440 


-179 


720 


- 9 


1000 


- 4 


1280 


- 60 


1560 


- 84 


1840 


-165 


2120 


-191 


2400 


-157 


2680 


-131 


2960 


- 74 


170 


- 58 


450 


-192 


730 


- 58 


1010 


- 1 


1290 


- 35 


1570 


- 92 


1850 


- 96 


2130 


-142 


2410 


-205 


2690 


- 80 


2970 


-168 


180 


-192 


460 


-164 


740 


-105 


1020 


-193 


1300 


-152 


1580 


-142 


1860 


-169 


2140 


- 58 


2420 


-104 


2700 


-253 


2980 


- 75 


190 


-142 


470 


-181 


750 


- 47 


1030 


-107 


1310 


- 55 


1590 


- 86 


1870 


-215 


2150 


-154 


2430 


- 85 


2710 


- 90 

- 7 


2990 


-204 


200 


-161 


480 


-192 


760 


■196 


1040 


-146 


1320 


- 58 


1600 


- 89 


1880 


-229 


2160 


-156 


2440 


- 67 


2720 


3000 


- 94 


210 


-192 


490 


-166 


770 


- 64 


1050 


<J 


1330 


- 58 


1610 


- 78 


1890 


- 76 


2170 


-169 


2450 


-124 


2730 


-115 


3010 


-170 


220 


-144 


500 


-181 


780 


- 91 


1060 




1340 


-188 


1620 


- 81 


1900 


-127 


2180 


-105 


2460 


-101 


2740 


• 32 


3020 


- 43 


230 


-163 


510 


-192 


790 


-145 


1070 


-128 


1350 


-186 


1630 


-142 


1910 


-166 


2190 


-135 


2470 


-123 


2750 - 


125 


3030 


-157 


240 


-192 


520 


-168 


800 
810 


-151 


1080 


-109 


1360 


-191 


1640 


- 88 


1920 


- 16 


2200 


- 1 


2480 


-117 


2760 - 


42 


3040 


- 76 


250 -148 


530 


-183 


-145 


1090 


-147 


1370 


-142 


1650 


- 91 


1930 


-108 


2210 


-221 


2490 


-136 


2770 - 


98 


3050 


-141 


260 


-166 


540 


- 84 


820 


-174 


1100 


- 7 


1380 


- 58 


1660 


- 80 


1940 


-252 


2220 


- 48 


2500 


- 25 


2780 - 


15 


3060 


- 22 


270 


-192 


550 


-141 


830 


-210 


1110 


-231 


1390 


-122 


1670 


- 83 


1950 


-204 


2230 


-152 


2510 


- 55 


2790 - 


134 


3070 


-230 


280 -150 


560 


-224 


840 


- 58 


1120 


-200 


1400 


-160 


1680 


-142 


1960 


-165 


2240 


■207 


2520 


- 58 


2800 - 


47 


3080 


-132 



rKU 














































3090 


-245 


3210 


-124 


OOOv 







lia 
"110 


3570 


-221 


o6Y0 


-202 


701 A 

3ol0 


"127 


3930 


-230 


a acá 

4050 


- 86 


4170 


-201 


4/7» -ÍHV 


3100 


-177 

III 


3220 


-172 

l 1 L 


"^40 


- A4 
0*t 


0460 


-1Z8 


3580 


-228 


3/00 


-164 


7000. 

3b70 


( L L 

-166 


3940 


-187 


4060 


- 70 


4180 


-142 


4300 -163 


3110 


- 99 


3230 


-234 


3351 




3471 
ot/ V 


-1 AR 
100 


y con 

3590 


ni 

- 81 


3/10 


i ai 
-101 


7Q7fl 

3o30 


i ai 
-101 


3950 


-241 


4070 


-224 


» < na 
4190 


na» 

-204 


nía n 

4310 - 9 


3120 


-131 


3240 


-141 


3360 


-142 


3480 


- 84 


3600 


-248 


3720 


- 76 


3840 


-109 


3960 


- 72 


4080 


- 98 


4200 


- 4 


4320 - 27 


3130 


-125 


3250 


-199 


3370 


- 58 


3490 


-218 


3610 


-179 


3730 


- 6 


3850 


-108 


3970 


-127 


4090 


-214 


4210 


- 55 


4330 - 34 


3140 


- R0 

QV 




100 


■np.ii 

0000 


¿10 


OJD0 


"100 


3620 


-102 


3740 


-152 


3860 


-131 


3980 


- 41 


4100 


- 65 


4220 


- 11 


4340 - 28 


3150 


-100 


3270 


-241 


3390 


-188 


3510 


- 60 


3630 


-108 


3750 


- 15 


3870 


- 40 


3990 


- 20 


4110 


- 82 


4230 


- 60 


4350 - 35 


3160 


- ¿0 


3280 


- 86 


3400 


-131 


3520 


- 90 


3640 


-237 


3760 


- 8 


3880 


-130 


4000 


- 45 


4120 


- 67 


4240 


-130 


4360 - 28 


3170 


-127 


3290 


-134 


3410 


- 58 


3530 


- 58 


3650 


-189 


3770 


-150 


3890 


- 38 


4010 


-216 


4130 


-232 


4250 


-181 


4370 - 35 


31B0 


- 26 


3300 


-124 


3420 


-135 


3540 


- 33 


3660 


- 94 


3780 


- 70 


3900 


-111 


4020 


-131 


4140 


- 8 


4260 


-137 


4380 - 29 


3190 


-142 


3310 


-144 


3430 


-250 


3550 


- 3 


3670 


- 51 


3790 


-169 


3910 


-126 


4030 


- 74 


4150 


-186 


4270 


-188 


4390 - 36 


3200 


-152 


3320 


- 10 


3440 


-174 


3560 


- 41 


3680 


-136 


3800 


-215 


3920 


- 29 


4040 


- 38 


4160 


- 96 


4280 


-198 TOTAL: 53385 

































— 












T 



I 



E 







Programa de juego por M. A. Carrero Espinosa 

Una buena oportunidad para probar tu puntería. Destruye todos los platos 
que aparezcan ante tu visor. Reflejos y buena puntería son condiciones 

indispensables en este juego. 





- W: 



LISTADO DE VARIABLES: 

- j $ : Dato que se introduce 

mediante el teclado para 
utilizar joystick o 
teclado. 

Si es 1 se juega con el 
joystick y si es O se 
juega con el teclado. 
AS C0) Variable en la que se 
construye el sprite del 
plato. 

A$ Cl)+A$0O+A$C3)+A$C4): 
Son las variables con las 
que se construye el 
sprite del punto de mira. 
Dibujo del patrón de los 
árboles mediante 
DBAW. 

Variables utilizadas 
como coordenadas de los 
ladrillos del muro. 
Variables utilizadas 
como coordenadas del 
punto de mira. 
Variable utilizada para 
el tiempo. 

Variable utilizada para 
la dirección de los 
cursores o del mando de 
juegos. 

Posición en columna del 
plato. 

Linea de salida del plato. 
Puntuación. 
AS: Dato que se introduce 

paravolverono volverá 



10 pem mmmnmmm 

20 REM i M. A. CARRERO t 
30 REM t TIPO I 
40 REM t MSX - EXTRA t 

50 rem mtmtmmmm 

60 REM ti* INSTRUCCIONES tt» 
70 COLOR 15,2,2:SCREEN l:KEY OFF 







80 LOCATE B,l:PRINT"r 
90 LOCATE 8,2: PRINT" ! 



■i 



TIRO 



100 LOCATE 8,3:PRINT" 1 " 

110 PRINT 

120 PRINT"Este juego consiste en di 

r a los platos que van saliendo por 

ado izquierdo de la pantalla." 



spara 
el 1 



-A$: 



-A,B: 



-X,Y: 



-TI: 
-S: 



-PP: 

-PY: 
-SC: 





í se iiieaa con el tecla 300 fti ( 4 ) sCHRt ( &HFF ) fCHRí ( ) + C HR $ ( &H 1 ?«a pfm ttt uadtadi ce ttt 



130 PRINT: PRINT°Si se juega con el tecla 
do, el punto de mira se dirige mediante 1 
as teclas del cursor, y se dispara con la 
barra espaciadora. 1 

140 PRINT:PRINT"Tienes un tie«po detemi 
nado para jugar. " 

150 PRINT: PRINT"Si quieres detener el 3 u 
ego pulsa Fl. * 

160 LOCATE 7,22:PRINT"PULSA UNA TECLA" 
170 IF INKEY$=" " THEN 170 
180 ON KEY GOSUB 1060 
190 KEY ( 1 ) ON 
200 CLS 

210 LOCATE 1,10: INPUT"¿Ut i 1 i zas joystick 
(S/N)";J< 

220 IF J$='S M OR J$=V THEN W=i ELSE IF 
J$='N" OR Ji="n" THEN W=0 ELSE GOTO 210 
230 COLOR 1,7, 1:SCREEN 2,2 
240 0PEN'GRP:"AS*1 
250 REM ttt SPRITES ttt 
260 A$(0)=CHR$(iH0)+CHR$(fcH0}+CHR$(?<H7E) 
+CHR$ ( &HFF ) +CHR$ ( 4HE7 ) +CHR$ (&H7E) +CHR$ ( i 
H0)+CHR$(iH0) 

270 At ( 1 ) =CHR$ ( StHF ) +CHR$ í StHlF ) +CHR* ( &H39 
) +CHR$(JcH71 ) iCHR$(&HE3)+CHRt (ÍHC1 1 +CHR$ ( 
iHC9)+CHR$(iHFF) 

280 A$ (2) S CHR$ (&HFF) +CHRS (&HC9) +CHRS (͡HC 
1 ) +CHR$ ( &HE3) +CHR$ ( 4H7 1 ) +CHR$ ( &H39) +CHR$ 
(fcMF)*CHR$(iHF) 

290 A$ (3) =CHR$ (&HF0) +CHR$(&HF8)+CHP$<?íH9 
C)+CHR$(í ! HlE)+CHR$(iHC7)+CHR$(í ( H13)+CHR$ 
(8tH93)+CHR$(&HFF) 



PUNTOS 
TIEMPO 



: 



3 6 



300 At (4) =CHR$ (&HFF) +CHR$ (&H93) +CHRS (&H1 
3) +CHR$ (ÍHC7) +CHR$ (StHlE) +CHR$ (StH?C> +CHP$ 
(&HF8)+CHR$UHF0) 
310 SPPITE$(0)=A$(0) 
320 SPRITE$(1)=A$!1)+A$(2)+A$(3)+A$(4 
330 REM ttt PANTALLA ttt 
340 A$='S4R3F3D3F3D3G3L4D3L2U3L4H3U3E3U3 
E3" 

350 LINE(0,140)-(256,160),12,BF 
360 LINE(0,160)-(256,192),15,BF 
370 FOR A=0 TO 256 5TEP 12 
380 FOR B=162 TO 192 STEP 14 
390 LINE(A,B)-(A+10.B+5),B,BF 
400 NEXT B,A 

410 FOR A=5 TO 256 STEP 12 
420 FOR B=169 TO 192 STEP 14 
430 LINE(A,B)-(A+10,B+5),8,BF 
440 NEXT B,A 

450 LINE(0,160)-(10,155),15 

460 LINE(256,160)-(246,155),15 

470 LINE(10,155)-(246,155),15 

480 PAINT(10,156),15 

490 CIRCLE(50, 1801,100, 12,1, 2.5 

500 CIRCLE(195, 1701,120,12,1,2.5 

510 PAINTÍ50, 130) , 12 

520 CIRCLE(30,30),18,ll 

530 PAINT(30,30),11 

540 LINE(160,120)-(250,150),1,BF 

550 PSET ( 165, 125U: COLOR 15: PRINT#1, "PU 

NTOS: " 

560 PSETf 165, 135) , 1:PRINT#1 , "TIEMPO: 100" 
570 PSET(10,100),0:COLOR 2:DRAW A$:PAINT 
(11,1011,2 

580 PSET(50,62),0:COLOR 3: DRAH A$:PAINT( 
51, 63), 3 

590 PSET(120,120),0:COLOP 2:DPAW At:PAIN 
T ( 121 , 121 > , 2 

600 PSET(130,100),0:COLOR 3:DRAW A$: PAIN 
T(131,101),3 

610 PSET(200,32),0:COLOR 3:DRAW A$:PAINT 
(201, 33), 3 

620 PSET (230, 90), 0: COLOR 2:DPAN A$:PAINT 
(231,91),2 

630 LINE(20,165)-(80,185),15,BF 
640 PSET (25, 167) , 15: DRAW"C1S13R1M+1 , +2R1 
M+l, -2R1D5L1U3M-1, +2L1M-1, -2D3L1U5" 
650 PAINTÍ27, 170), 1 

660 PSET(45, 167) , 15: DRAWC1R4D1L3D1R3D3L 

4U1R3U1L3U3' 

670 PAINTÍ47, 170) , l 

680 PSETÍ63, 167) , 15: DRAWC1R1M+1 , +2M+1 , - 
2R1M-1, +2D1M+1, +2L1M-1,-2M-1, +2Llf1+l,-2U 
lH-1,-2" 

690 PAINT(65,169),1 



700 REM ttt VARIABLES ttt 
710 X=120:Y=50:PP=0:SC=0:TI=1000 
720 REM INICIO 
730 S=STICK(N) 
740 ON STRIG GOSUB 940 
750 STPIG(W)0N 
760 SPPITE OFF 
770 TMH 

780 IF TI=INT(TI/100)tl00 THEN PSET'213. 
135),0:COLOR 1:PRINT#1, "III": PSET (218. 13 
5),0:COLOR ISsPRlNTti, TI/10 
790 IF TI/10O0 THEN 1060 
800 IF S=l THEN Y=Y-15 
810 IF S=3 THEN X=X+15 
820 IF S=5 THEN Y=Y+15 
830 IF S=7 THEN X=M5 
840 IF X<5 THEN X=5 
850 IF Y<5 THEN Y=5 
860 IF X>235 THEN ¡t=235 
870 IF Y>100 THEN Y=100 
880 IF PP=0 THEN PY*!NT(RN0(l)t?i)*4«tBE 
EP 

890 PP=PP+10:IF PP>=260 THEN PP=0 
900 IF PPÜ00 THEN PY=PY-3 ELSE IF PP>15 
THEN PY=PY+3 

910 PUT SPRITE 9,(PP,PY),15,0 
920 PUT SPRITE 1,U,Y),1,1 
930 60TO 730 
940 REM ttt DISPARO ttt 
950 SOUND 6,15:S0UND 7,7 
960 SOUND 8, 16: SOUND 9,16 
970 SOUND !0,16:SOUND 12,16 
980 SOUND 13,0 
990 PUT SPRITE 1,(X,Y),15,1 
1000 ON SPRITE GOSUB 1030 
1010 SPRITE ON 
1020 RETURN 

1030 REM ttt BLANCO ttt 
1040 COLOR ,,15:SPRITE OFF:PP=0:SC=SC+10 
: PSET (218, 125) , 1 : COLOR t:PRINTil,W:C 
OLOR 15:PSET(218, 125) , 1 : PRINTSl , SC: COLOR 
ni 

1050 GOTO 880 

1060 REM ttt INTERRUPCION ttt 
1070 STRIG(H) OFF:SCPEEN 1:C0L0R 15,2,2 
1080 LOCATE 4,5:PRINT"Has 1 ogrado" ; SC; "p 
untos" 

1090 LOCATE 0,10:PRINT o cQuieres jugar ot 
ra vez?(S/N)" 
1100 A$=INKEY$ 

1110 IF A$="S" OR A$='s" THEN CLOSE:G0TO 
70 

1120 IF A$="N" OR A$=V THEN END 
1130 GOTO 1100 



mm 



0él ám, é&k Él 




TEST DE LISTADO 



10 


- g 


!20 


-225 


230 -162 


340 


-246 


450 


-104 


560 


-208 


670 


-113 


780 


- 85 


890 


- 22 


1000 


- i 


1110 - 29 


2? 


- 


130 


- 20 


240 -224 


350 


- 14 


460 


-243 


570 


-173 


680 


-216 


790 


- 53 


900 


-104 


1010 


- 92 


1120 -201 


30 


- ? 


!40 


-240 


250 - -? 


360 


- 34 


470 


- V 


580 


-184 


690 


-130 


800 


-106 


910 


- 13 


1020 


-142 


1130 -231 


i? 


- 


isá 


-246 


260 -127 


3^0 


-194 


480 


- 74 


5=0 


-182 


700 


- 


810 


-105 


920 


- "8 


1030 


- 




H 


- i 


160 


- 34 


270 -143 


390 


- 5 


490 


- 16 


600 


-164 


710 


- 9 


820 


-109 


930 


-115 


1040 


-242 




60 


- 


172 


- 60 


28? -128 


300 


-i 7 ' 


500 


-171 


610 


-136 


720 


- 


830 


-110 


940 


- 


1050 


- 10 




71 


- ?i 


180 


- 36 


290 -114 


400 


- 50 


510 


- 85 


620 


- 86 


730 


-139 


840 


- 32 


950 


-127 


1060 


- 




9? 


- 97 


190 


-196 


300 -130 


410 


-18" 


520 


- 38 


630 


-151 


740 


-129 


850 


- 34 


960 


-139 


1070 


-217 




90 


i ■? 
t. 


200 


-159 


310 - 3 


420 


- 12 


530 


-220 


640 


-160 


750 




860 


-230 


970 


-140 


1080 


- 59 




!#l 


-103 


219 


-105 


320 - 54 


430 


-171 


540 


-113 


650 


- °3 


7 60 


-178 


870 


-218 


980 


- 29 


1090 


- 71 


TOTAL: 


110 


-Í4Í 


220 


-140 


330 - 


440 


- 50 


550 


-101 


660 


- 46 


770 


- 45 


880 


-198 


990 


-110 


1100 


- 64 


11708 



REGALATE Y DISFRUTA DE II LIBRO 
TAL PARA 



UN LIBRO PENSADO 
PARA TODOS LOS QUE 
QUIEREN INICIARSE 
DE VERDAD EN LA 
PROGRAMACION BASIC 

Construcción de programas. El po- 
tente editor todo pantalla. Constan- 
tes numéricas. Series, tablas y ca- 
denas. Grabación de programas. 
Gestión de archivo y grabación de 
datos. Tratamiento de errores. Los 
gráficos del MSX. Los sonidos del 
MSX. Las interrupciones. Introduc- 
ción al lenguaje máquina. 



IAVIEK Gl EKHERO 



JOAN C AKI.OS GON/AI IV 



9<nii nm itl«idid ¿i (¡«licita 

compontt música a una. dos o Ires voces 
organiza! tus propios programas de gestión,... 

LOS SECRETOS DEL 




Y ADEMAS PROGRAMAS 
DE EJEMPLO 

Alfabético. Canon a tres voces. 
Moon Germs. Bossa Nova. Blue 
Bossa. La Séptima de Beethoven. 
La Flauta Mágica de Mozart. Scra- 
ple from the apple & Donna Lee. The 
entretainer. Teclee un número. Ca- 
lendario perpetuo. Modificación 
Tabla de colores SCREEN 1 . Rec- 
tángulos en 3-D. Juego de caracte- 
res alfabéticos en todos los modos. 
Juego Matemático. Más grande más 
pequeño. Poker. Breackout. Apoca- 
lypse Now. El robot saltarín. El ar- 
chivo en casa. 



Deseo me envíen el libro Los secretos del MSX, para lo cual adjunto talón de 1.500 ptas. a la orden de 
MANHATTAN TRANSFER, S.A. Importante: No se hace contra reembolsos. 

Nombre y apellidos 

Calle n.° Ciudad CP 

Este boletín me da derecho a recibir los secretos MSX en mi domicilio libre de gastos de envío o 
cualquier otro cargo. 

Importante: Indicar en el sobre MANHATTAN TRANSFER, S.A. 

«LOS SECRETOS DEL MSX» 

Roca i Batlle, 10-12 Bajos-08023 BARCELONA 



INICIACION AL LENGUAJE MAQUINA 



DEL HARD AL SOfJ 



LAS MEMORIAS DE UN 
ORDENADOR MSX 



Por J. C. González 



Con frecuencia recibimos en esta sección cartas de consulta sobre diversos temas relacionados con el lenguaje 
máquina, normalmente no contestamos las cartas de forma individual, sino dentro de nuestro artículo de cada mes, 
sin embargo hoy responderemos a las cuestiones que con más frecuencia nos consultáis. 
Por razones de espacio desistimos publicar vuestras cartas, pero aquí están las respuestas. 



Conocer la estructura interna del 
ordenador y la organización de 
los procesos que en ella se reali- 
zan, es casi imprescindible si programa- 
mos en lenguaje máquina. 

Cuando compramos un ordenador, 
una de las primeras cosas que aprende- 
mos son las «K» que tiene, por ejemplo, 
podemos adquirir un ordenador de 64K, 
48K, 32K, 16K. «K» significa Kilobyte y 
equivale a 1 .024 Bytes, éstas son dos 
medidas de la capacidad de memoria de 
un ordenador, por ejemplo si se trata de 
un ordenador de 64K tendremos que 
éste tiene 64 * 1024 = 65536 Bytes. A 
su vez un Byte se compone de 8 Bits, 
que son la representación de los datos 
de la memoria interna. De esta manera 
tenemos 64 * 1024 * 8 = 524288 Bits, 
que son interruptores con todas las 
combinaciones posibles de encendido/ 
apagado. En la práctica empleamos 
sólo unidades de Byte. 

Los Bytes se ubican en la memoria 
RAM del ordenador (Random Access 
Memory), siendo esta una memoria de 
lectura y escritura o memoria de trabajo. 

Los 65536 Bytes de la RAM se nume- 
ran desde &HOOOO hasta &HFFFF, el 
número que corresponde al Byte es su 
dirección, y viene dada normalmente en 
una cifra hexadecimal. 

Como a cada dirección le correspon- 
de un Byte, y un Byte se compone de 8 
Bits, es decir que está entre y 255 
(&HOO-&HFF), el valor a memorizar 
también debe estar dentro de este ámbi- 
to, asimismo, la dirección también debe- 
rá hallarse entre &HOOOO y &HFFFF. 

La memoria RAM sirve para almace- 
nar los programas que introducimos en 
el ordenador. También existe un espa- 
cio en la memoria para almacenar pro- 
gramas en lenguaje máquina en las ver- 
siones de más de 32K RAM, aunque no 




-• 





* 



se puede acceder a partir del Basic. En 
la RAM superior también se hallan algu- 
nas rutinas del sistema operativo, p.e. 
teclas de función, colores, buffer de en- 
trada, etc. 

La distribución de la RAM es la si- 
guiente: &HOOOO - &HFFFF para pro- 
gramas máquina en las versiones de 
64K; &H8000 - &HBFFF para los pro- 
gramas Basic en las versiones de 32K; 
&HCOOO - &HF37F para programas 
Basic en todas las versiones; &HF380 - 
&HFFFF utilizado por el sistema en to- 
das sus versiones. 



Se puede limitar el espacio reservado 
para programas en Basic mediante el 
comando > Clear tamaño del área de 
cadenas, dirección <. De esta manera 
disponemos del espacio de la dirección 
dada en el comando > Clear < hasta 
&HF37F para almacenar los programas 
en código máquina. Por ejemplo, reser- 
vamos > Clear, 200, &HEFFF < el es- 
pacio de &HFOOO a &HF37F para el 
programa máquina, grabándolo luego a 
partir de &HFOOO mediante comandos 
> POKE <. 

Además de la memoria RAM, existe 



51 



INICIACION AL LENGUAJE MAQUINA 



DEL HARD AL SOFT 



otra memoria importante, la ROM (Read 
Only Memory) que podría traducirse 
como Memoria sólo de lectura, o memo- 
ria de valor fijo. En ella se ubican los da- 
tos y programas que luego nos permiten 
programar en Basic. 

La ROM al ser una memoria de valor 
fijo, esto es, que en ella se graban datos 
y programas en Lenguaje Máquina inal- 
terables, se instala en el ordenador en la 
fábrica. 

Los ordenadores MSX poseen dos 
memorias ROM de 1 6K, a veces tres si 
se incorpora un programa adicional, cu- 
yas direcciones se superponen con las 
de la RAM. 

Cuando se pone en marcha el orde- 
nador la ROM se activa en el espacio de 
memoria que va desde &HO a &H7FFF, 
y la RAM entre las direcciones &H8OOO 
y &HBFFF, aunque en algunas versio- 
nes, también se encuentra la ROM con 
programas incorporados. Generalmen- 
te la RAM siempre se halla en el bloque 
superior de 1 6K, entre &HCOOO hasta 
&HFFFF, y para la lectura de la RAM in- 
ferior, primero tendremos que hacer que 
la CPU lea la RAM y luego utilizar las di- 
recciones de la ROM. 

Las ROM emplean los espacios si- 
guientes: ROM I &HOOOO a &H3FFF 
para el sistema operativo; ROM II 
&H4000 a &H7FFF para el Basic; 
ROM III &H8OOO a &HBFFF para el 
programa adicional si éste existe. 

Otra estructura del ordenador es el 
sistema operativo, que se encarga de 
los periféricos, la administración de los 
datos, su distribución, etc.. En un espa- 
cio de la ROM también se ubican las co- 
pias de las rutinas del sistema operativo 
de la RAM, así cuando encendemos el 
ordenador estas rutinas contenidas en 
la ROM pasan a la RAM. 

Asimismo en la ROM existe la memo- 
ria de todos los caracteres y signos, en- 
tre &H1BBF y &H23BC. Los comandos 
BASIC de la programación externa son 
ejecutados por los programas de la 
ROM de Basic. 

Existe un procedimiento llamado 
Bank-Switching que permite al ordena- 
dor superar las 64K de memoria direc- 
cionable. Los ordenadores MSX tienen 
cuatro de estos bancos denominados 
«Slot», puesto que son módulos conec- 
tables que pueden ser direccionables 
mediante este sistema. 

Las ROMs con los programas incor- 
porados, es decir, con el sistema opera- 
tivo y el Basic, son asignados el Slot 0, 
asimismo en las versiones de 16K, la 
RAM también se incluye en éste Slot, 
copándolo totalmente con 64K. En ge- 
neral es al Slot 2 el que se asigna a la 
RAM. Los módulos enchufables son 
asignados a los Slots 1 y 3. 

Según la versión del ordenador de- 
penderá la asignación de la RAM. 



52 



En los ordenadores MSX existe un es- 
pacio que contiene, para cada modo 
gráfico, el contenido de la pantalla, infor- 
mación sobre Sprites y colores, que de- 
nominamos RAM de vídeo (VRAM) con 
1 6K de memoria. El acceso a este espa- 
cio RAM se realiza mediante el VDP (Vi- 
deo Display Prozessor) y también a tra- 
vés de los comandos Basic > VPOKE < 
y > VPEEK < 

Visto todo esto, podemos concluir que 
si todos los Slots están cubiertos el or- 
denador posee una memoria de 272K. 

APLICACION DE LOS 

COMANDOS DE DESPLAZAMIENTO 

Las aplicaciones más usuales que se 
realizan con los comandos de desplaza- 
miento y rotación son las multiplicacio- 
nes y divisiones binarias. Veamos pri- 
mero como se realiza una multiplicación 
en sistema decimal y luego en sistema 
binario de dos números de 8 Bits: 



101 * 29 

202 
909 

2929 

En sistema binario: 

101 =&H65 = &B01100101 
29 = &H1D = &B00011101 

01100101 * 00011101 



0110 0101 
011 00101 
01 100101 



1100101 

1011 0111 0001 = &HB71 = 2929 

Así, la multiplicación de un número 
por otro es el resultado de una suma y 
un desplazamiento. El desplazamiento 
se efectúa anotando cada línea del re- 
sultado una debajo de otra y desplazán- 
dola una posición a la izquierda. El pro- 
grama sería: 



10'ORG &HFOOO 

20 ' LD B.B 

30 'LD A, (FAK1) 

40 ' LD E.A 

50 ' LD A, (FAK2) 

60 ' LD D.O 

70 ' LD HL, O 

80 ' MULTIP RRCA 

90 ' JR NC.NOADD 
100' ADD HL, DE 
110'NOADD SLA E 







120 'RLD 
130 'DJNZ MULTIP 
140 'LD (RESULT), HL 
150 'RET 

' FAK1 DB101 
' FAK2 DB 29 
' RESULT DB 2 
'END 





160 
170 
180 
190 







El indicador de dirección se incremen- 
ta en el número indicado. La memoria 
así reservada es utilizada en este caso 
para almacenar el resultado. 

LOS C0MAÜTD0S DE 
INTERCAMBIO 

Los comandos sencillos de transfe- 
rencia de datos vienen dados por LD, 
pero además existen otros comandos 
que intercambian los contenidos de dos 
áreas, estos vienen representados por 



los comandos de tipo EX (exchange). 
Por ejemplo: EX DE, HL intercambia el 
contenido del registro DE con el del re- 
gistro HL. 

Otro tipo de EX es el de direcciona- 
miento indirecto, que intercambia el 
contenido de los registros HL, IX o IY 
con el contenido superior de la pila, sin 
alterar al SP. Su formato es: EX (SP), 
HL 

Por otro lado, existe una serie de co- 
mandos de intercambio que su función 
radica en intercambiar entre sí los con- 
tenidos de los registros pares. Tene- 
mos, por ejemplo, el comando EX 
AF.AF' que intercambia el contenido del 
Acumulador y del registro flag con sus 
correspondientes A' y F'. El comando 
EXX intercambia los otros registros pa- 
res BC, DE y HL con sus correspondien- 
tes BC DE', y HL'. 

LOS CUATRO REGISTROS 
DE 16-BITs 

Hay cuatro registros de 1 6-Bits, que 
son: SP, PC, IX.IY. 

El registro SP: Se trata de un registro 
fijo, esto es, que no puede descompo- 
nerse en dos registros de 8-Bits. Este re- 
gistro Puntero de pila (SP), sirve para in- 
dicar las direcciones en la memoria, en 
las cuales existen direcciones de retor- 
no, o bien, datos de memoria interme- 



dia. La dirección es una posición de me- 
moria que está situada en un espacio 
RAM llamado Stack o pila. 

Cuando encendemos el ordenador el 
registro SP se coloca en la dirección 
más alta de la pila, esto es, en 
&HFOOO. Si tenemos que poner un 
Byte en la pila, el SP se reduce en uno, 
almacenándose de esta manera ese 
Byte en la dirección indicada por el SP. 
El registro Sp siempre indica el último 
apunte. El proceso también puede reali- 
zarse a la inversa. 

El registro PC: El PC es un registro 
que se administra internamente, indi- 
cando la dirección del comando actual. 
Este registro no puede ser grabado ni 
modificado desde un programa. 

Los registros IX/IY: En general se 
utilizan para almacenar direcciones o di- 
recciones relativas. 



REGISTRO INTERRUPT Y 
REFRESH 

Estos registros pertenecen a la Uni- 
dad de Control (CU): 
I: Registro Interrupt (Interrupción): 
Cuando tiene lugar una interrupción 
del programa, este registro de 8-Bits 
contiene la parte superior de la dirección 
en la que debe realizarse la desviación. 
La parte inferior de la dirección viene 
dada por el elemento del ordenador que 
ha producido la interrupción. 
R: Registro Refresh (Refresco): 
Es un registro que utiliza el Hardware 
como contador para refrescar, a interva- 
los regulares, el contenido de la memo- 
ria dinámica. De esta manera impedi- 
mos que se pierdan las informaciones 
memorizadas, mediante la continua re- 
carga del mismo contenido de la memo- 
ria. 



LOS COMANDOS DE CONTROL 

Los comandos de control son aque- 
llos que modifican o influyen sobre el 
modo operativo o el funcionamiento de 
la CPU. 

NOP = No Operation: 

El comando NOP no realiza ninguna 
función. Su utilidad radica en proporcio- 
nar un retardo intencionado, que en los 
ordenadores MSX dura aproximada- 
mente un microsegundo. Este comando 
NOP también se utiliza para reservar es- 
pacio en los programas, resultando lue- 
go más fácil la corrección o búsqueda de 
errores. Su código de operación es 
&HOO. 



STOP: 

El comando STOP interrumpe todas 
las operaciones de la CPU hasta que no 
se realice un Reset o un Interrupt. 



COMANDOS INTERRUPT 

Una interrupción se utiliza general- 
mente para ejecutar un proceso, así, 
una interrupción nos da el aviso, a partir 
de un componente del ordenador, sobre 
la entrada a un estado. Por ejemplo, la 
espera de los periféricos de Entrada/sa- 
lida a la entrada de datos. Un programa 
que se esté ejecutando puede ser inte- 
rrumpido por un interrupt. Con los orde- 
nadores MSX se pueden programar in- 
terrupciones a partir del Basic (P.e./ ON 
STOP), en estos comandos el interrupt 
se activa mediante el reloj interno del 
procesador. Cuando se precisa una in- 
terrupción, el programa se desviará a la 
dirección de inicio del subprograma que 
ejecuta las operaciones de interrupción. 
Para retornar al programa principal se 
utiliza el comando RETI (Return Inte- 
rrupt). 

Hay que diferenciar las interrupciones 
con máscara y las interrupciones sin 
máscara, éstas se ejecutan en cualquier 
condición, poseyendo máxima priori- 
dad. Para retornar al programa principal 
usamos el comando RETN. 

DI (Disable interrupt) y El (Enable 
interrupt): 

DI tiene por función el bloqueo de las 
interrupciones con máscara, permane- 
ciendo en ese estado hasta que el co- 
mando El las posibilita nuevamente. 

IM0(Modo Interrupción 0): 

IM permite el paso del modo 1 al 
modo 0. Provocada una interupción 
aguarda en modo el comando de un 
periférico. 

IM1: 

Es el modo que aparece cuando co- 
nectamos el ordenador. Al provocar una 
interrupción en este modo, se desvía 
automáticamente a la dirección &H30. 

IM2: 

En IM 2 (Vector-lnterrupt), se desvía a 
una dirección de una tabla de función. 



COMANDOS DE ENTRADA 
Y SALIDA 

El funcionamiento y la eficacia de los 
comandos de entrada y salida depen- 
den del hadware que se utilice. Como 
mínimo cada ordenador utiliza un co- 
mando especial E/S IC para establecer 
comunicación con los periféricos. El or- 
denador tiene un PPI (Programable Pe- 
ripherical Interface [8255]), también se 
emplean otras denominaciones, como 
PIO o PIA. Una parte de los comandos 
de E/S funcionan a partir de este compo- 
nente, ejecutando luego la comunica- 



ción con el teclado, el control de la me- 
moria y el cassette. Existen, además, 
otros componentes del procesador que 
están unidos por conectores E/S, por 
ejemplo tenemos el PSG (Programable 
Sound Generator) que tiene por función 
la generación de sonido y del port del 
Joystick, y también el VDP (Video Dis- 
play Processor) encargado de producir 
la imagen del monitor. 

La conexión entre estos elementos in- 
dependientes y el Z80 se efectúa me- 
diante estos comandos E/S. Son inde- 
pendientes en cuanto, por ejemplo, el 
VDP emite continuamente la señal de 
salida del vídeo, con independencia de 
la CPU. Empleando los comandos de E/ 
S se transfieren datos y comandos, o 
bien se reciben de él, a los elementos 
del IC. 

Para este tipo de conexión se emplea 
el concepto interíase. Existen, por tanto 
interfases internos (elemento procesa- 
dor E/S) y externos (elemento periférico 
E/S). 

El comando E/S respectivo escribe un 
valor en el interfase pertinente, enton- 
ces si hay un aparato conectado, el valor 
es recibido ejecutándose la acción que 
pertoque. En general existen unas 256 
direcciones E/S diferentes. La dirección 
es la que determina a qué periférico se 
tienen que enviar los datos. 

En resumen, un comando para que 
esté completo necesita de dos accio- 
nes, a saber: la primera es la dirección 
del port E/S, y la segunda, el valor de los 
datos enviados o sino el registro en que 
serán almacenados los datos recibidos. 

En el comando IN, los datos se leen 
del port y se almacenan en el registro 
que se indica (la dirección del port se es- 
cribe entre paréntesis). El comando 
OUT envía los datos indicados al port 
que corresponda. 

Existen dos tipos de direccionamiento 
para los comandos E/S: 

-El de direccionamiento inmediato, 
cuyo formato es: 

OUT(n),A INA,(n) 

-Y el de direccionamiento indirec- 
to, cuyo formato es: 

OUT(C),r INr,(C) 

Los comandos análogos en Basic 
MSX serían > INP < y > OUT<, siendo 
su forma de funcionamiento igual que en 
los de lenguaje máquina, aunque mu- 
chas funciones solo son posibles a tra- 
vés de código máquina. 



Podemos, aún, encontrar cuatro co- 
mandos más para la entrada y salida de 
bloques, que se utilizan parecidamente 
a como se emplean los comandos de 
transferencia de bloques, siendo HL la 
dirección correspondiente en la memo- 
ria, C, la dirección del port, y B, la longi- 
tud del bloque. 

El código &HED es el inicio de los co- 
mandos E/S, y son representados por 
un código de 2 Bytes, y los comandos de 
direccionamiento inmediato por un códi- 
go de 1 Byte. 



53 



THE MOST 
AMAZING 
MEMORY GAME 





El objetivo de este juego es ejercitar 
la capacidad de retentiva de los ju- 
gadores de cualquier edad, espe- 
cialmente de los más niños. Se trata de en- 
contrar la pareja de un gráfico determina- 
do oculto en un amplio tablero. Pueden in- 
tervenir de uno a cuatro jugadores, con lo 
cual pueden hacerse partidas muy intere- 
santes. El jugador que acierta tiene opción 
a intentar destapar una vez más y así has- 
ta que pierda. Mientras tanto, el ordena- 
dor lleva una estadística de cada jugador 
de modo que al final, cuando todas las figu- 
ras han sido descubiertas puede estable- 
cer quien ha acumulado más puntos. 








Si al principio no acertáis no desespe- 
réis, pues vais un tanto ciego, pero a medi- 
da que se van destapando puedes ir rete- 
niendo el lugar donde se encuentran y 
aprovechar ¡eso sí! el mínimo error del 
contrario. Para ganar no hay que perdo- 
nar y menos olvidar. En este juego lo que 
importa es la memoria. 



Grafismo: correcto. 

Conclusión: Si bien es un juego muy común, 
su valor radica en que desarroDa la capacidad 
de memoria de los jóvenes a la vez que aumen- 
ta los reflejos de retención visual. 
Precio aproximado: 4.000 pts. 




FINDER 
KEEPERS 



Mastertronic/Drosott 
Formato: cassette 



tecladoojoystick 



ara conseguir un puesto en la «tabla 
poligonal» y convertirte además en 
caballero de honor, deberás solucio- 



POR CLAUDIA TELLO HELBLING 

narle un pequeño pero peligroso proble- 
ma al rey. 

Resulta que el regalo que tenía prepara- 
do el rey para su hija lo ha perdido y, sin 
saber cómo, ha ido a parar a un castillo 
habitado por fantasmas, duendes y otros 
seres extraños e incluso hay una zona ha- 
bitada por parientes de la reina. 

Se da comienzo la aventura una vez que 
los vasallos del rey te hayan dejado en el 
castillo, dentro deberás recoger todos los 
tesoros escondidos por los fantasmas, 
ipero cuidado! no dejes que estos seres te 
atrapen o te quedarás sin los tesoros con- 
seguidos hasta el momento y volviendo al 
principio del juego. Antes de poder salir 
del castillo habrás de superar dos panta- 
llas muy difíciles; una de ellas son los labe- 
rintos donde la ventaja es para tus enemi- 
gos y es que éstos conocen a la perfección 
los laberintos lo que significa que les será 
más fácil atraparte. 

Otros personajes que aparecen en este 
juego son «los compradores de tesoros» 
también llamados «sanguijuelas», van 
apareciendo a medida que transcurre el 
juego, insistentemente para que les ven- 
das los tesoros. 

Alguno de los tesoros que encuentres 
podrían ser mágicos, lo sabrás pronto ya 
que éstos se unen entre sí formando un te- 
soro mayor pero, pueden tener más o me- 
nos valor. 

El juego finaliza cuando se han conse- 
guido todos los tesoros y han sido entrega- 
dos al rey o bien cuando tus oportunidades 
para cumplir esta misión se han agotado. 
¡Ah! No dejes que los compradores te inti- 
miden para traicionar al rey vendiendo 
los tesoros y quedándote todo el dinero, no 
sería propio de un «caballero». 



Sonido: bueno. 
Grafismo: muy real. 
Conclusión: esunt 



BARNSTORMER 



Sema 

Formato: tarjeta sofcard 
Mandos: teclado o joystick 



Con este Juego podrás comprobar lo 
peligroso que puede ser un rutina- 
rio vuelo en avión como es el caso de 
éste. Resulta que el copiloto ha pedido per- 
miso a la torre para aterrizar pero ésta le 
ha concedido tan sólo 5 minutos y medio 
para hacerlo. 

El capitán del avión ha confirmado a la 
torre de vigilancia un pequeño problema; 
parece ser que unos globos de aire caliente 








se han soltado yendo a parar ala pista des- 
tinada a «Romeo», el avión, impidiendo 
que pueda aterrizar. 

El capitán de «Romeo» ha decidido, 
como única solución para efectuar el ate- 
rrizaje, utilizar el cargamento de harina 
que lleva a bordo y bombardear a los glo- 
bos con bolsas de harina. 

Una advertencia, no des mucha veloci- 
dad al avión ya que si no tienes práctica 
podrías perder su control y estrellarte con 
algún globo o depósitos de agua instalados 
en al aeropuerto. 

Cabe la posibilidad que el avión se quede 
sin combustible, para que esto no ocurra 
en la pantalla tienes un indicador del com- 
bustible. 

El juego se divide en dos fases: 

1. a fase: Lo explicado anteriormente su- 
cede durante el día. 



2. a fase: Durante la noche. Los globos co- 
mienzan a tirar bengalas para indicar el 
camino pero al estar mal situados es bas- 
tante peligroso, por eso no te acerques de- 
masiado a ellos. Este no es el único obstá- 
culo también encontraras unos petardos 
que explotarán en cualquier momento. 

Los puntos se consiguen: al derribar un 
globo (250 puntos), al destruir una ben- 
gala (725 puntos) o bien al recoger com- 
bustible (175 puntos). 

Además si dominas los aviones y consi- 
gues 10.000 puntos obtendrás un avión 
extra. ¡Animo y... aterriza como puedas! 



Sonido: oirás el ruido del avión al volar y el 
de los disparos. 
Graf ismo: bueno. 

Conclusión: un juego muy entretenido para 
todas las edades pero sobre todo para los mas 
«peques». 

Precio aproximado: 5.250 pts. 



RESCATE 
ESPACIAL 



Bytebuster/Drosoft 




Formato: cassette 64K 




Mandos: teclado o jcystáck 









Un grupo de astronautas fueron 
enviados a la Luna para realizar 
unos experimentos pero por moti- 
vos desconocidos la nave nodriza ha deja- 
do de recibir noticias de ellos, parece ser 
que los habitantes de la Luna retienen su 
salida. 

Tú como capitán de la nave de rescate 
debes ir a salvarlos, ellos estarán esperan- 
do en las plataformas instaladas en el sa- 
télite. En el momento que (tu nave) partes 
hacia la Luna una tormenta de meteoritos 
te sorprende, haciendo que el camino sea 




un verdadero infierno; trata de esquivar- 
los antes de que te destrocen la nave. Una 
vez que hayas entrado en la órbita lunar 
recoge al hombre que está en la platafor 
ma e inicia el despegue con mucha cautela 
porque por lo visto los «lunáticos» se han 
propuesto impedirte la salida con sus na- 
ves de combate. Para tu defensa los técni- 
cos de la nave nodriza han instalado en el 
avión una buena carga de municiones. 

Si en el aterrizaje a una de las 9 platafor- 
mas deseas reducir velocidad no tienes 
más que apretar el botón de disparo, igual- 
mente si quieres aumentar velocidad al 
despegar. 

El juego finaliza cuando te han destruí 
do todas las naves de salvamento o bien 
consigas salvar a los 9 hombres secues- 
trados, siendo asi pasarías a un nivel más 
difícil. 

Por rescatar a estos hombres recibirás 
una gran recompensa y puedes obtener 
una buena puntuación destruyendo naves 
enemigas. 



Sonido: correcto. 
Grafismo: bueno. 

Conclusión: dentro de los juegos espaciales 
éste resulta muy entretenido, ya que permite 
desarrollar la habilidad, mientras se mantie- 
ión calidad-i 



MC.ATTACK 



Bytebuster/Drosoft 
Formato: cassette 16K 
Mandos: teclado o joystick 
Teclee: Run"CA8:" 



El personaje principal de este juego 
es Freddy, más conocido como «el 
rey de las hamburguesas». Los de- 
más personajes los irás conociendo a me- 
dida que transcurra el juego en situacio- 
nes no muy agradables para ti sino vas 
con cuidado. Los más peligrosos son las 
salchichas y los huevos fritos. 

El juego consiste en ayudar a Freddy a 
completar sus hamburguesas e ir sirvién- 
dolas en los platos. 

Los Ingredientes de las hamburguesas 
están situados en unas barras, cada vez 
que Freddy pase por encima de uno de los 
ingredientes éste descenderá por la barra 
y así sucesivamente hasta llegar al plato. 

La misión de las salchichas y los huevos 
fritos es impedir que hagas las hambur- 
guesas, si uno de estos «locos alimentos» 
te toca, el juego comenzará desde el princi- 
pio pero se te sumarán los puntos obteni- 
dos hasta el momento. La única arma que 
tiene Freddy para defenderse es un bote 
con una pequeña cantidad de pimienta 
que deberá utilizar en situaciones de ver- 
dadero peligro; el efecto de la pimienta pa- 
ralizadora dura unos segundos. 

A medida que vas superando fases, el ni- 
vel de éstas irá aumentando; aparecerán 
más salchichas, huevos fritos y, sobre 
todo, más hamburguesas a completar. 

Otra posibilidad de librarte de tus ene- 
migos es «incluirlos en el menú» es decir 
aplastarlos con algún ingrediente en el 
instante que pasen por debajo. 

En la parte superior de la pantalla la 
computadora te indicará tu puntuación, el 




número de Freddys que te queden y la can- 
tidad de pimienta. 

Preparando muchas hamburguesas ob- 
tendrás una buena puntuación y podras 
incluirte en la lista de récords de Me. At- 
tack. 



esa 

MacAttack 




Sonido: insistente. 
Graí ismo: correcto. 

Conclusiones: un juego que requiere habili- 
dad] 



Bytebusters/Drosoft 
Formato: cassette 64K 
Mandos: teclado o joystíck 
Teclee: RUTí "CAS": 



Una vez que hayas seguido correcta- 
mente las instrucciones de carga 
de este emocionante juego apare- 
cerá en la pantalla la sala de control del 
planeta Drome. En esta sala encontrarás 
cuatro salidas a cada lado de la pantalla. 
Cada una de ellas te conducirán a un siste- 
ma de defensa distinto. Tu misión es des- 
truirlos. Por lo tanto los frentes que debes 
combatir son los siguientes: 




_ ■ fll 

I : l¿ - -vi 



TANQUES: Se trata de un combate en- 
tre los tanques de Drome y los tuyos. Esta 
batalla tiene lugar en un laberinto y si tie- 
nes la suerte de derribar un tanque habrás 
conseguido con ello la destrucción de un 
sistema. 

CABLES: Dentro de este circuito se en- 
cuentra el principal generador de Drome, 
que a su vez contiene protones y electro- 
nes. Deberás eliminar la mayor cantidad 
de protones e impedir que dichos protones 
colisionen contigo y logren ionizarte. Si 
destruyes una apreciable cantidad de ellos 
el generador se sobrecargará y esto te ayu- 
dará en la puntuación final. 

LA VALVULA: En esta fase entrarás 
en la planta en donde se encuentran las 
válvulas. iDestruyelas con tu moderna 
pistola! -pero vigila la situación con los 
láser que las protegen a ambos lados de la 
pantalla. 

LAS MOTOS DE LA LUZ: Estas motos 
van dejando a su paso una sustancia fosfo- 
rescente en su recorrido. Intenta que la 
moto enemiga se estrelle contra esta sus- 
tancia y habrás ganado la partida; pero 



POR CLAUDIA TELLO HELBLING 



ten cuidado de no caer en la misma tram- 
pa y ser tú el que se estrella en tan traido- 
ra sustancia. Si deseas que tu moto vaya a 
más velocidad aprieta el botón de disparo 
o la barra de espacio. Para esta fase ¡Aten- 
ci ón se nec esitan buenos reflejos! 

PUNTUACION: Los puntos se consi- 
guen a medida que vas eliminando los sis- 
temas de defensa y si tienes suerte y des- 
truyes los cuatro sistemas se te obsequia- 
rá con unos (bonos) puntos extras. 

Obtendrás una vida extra al llegar a los 
10.000 puntos. Por el contrario si los sis- 
temas de Drome pueden contigo, en la si- 
guiente fase perderás estos pinitos extras 
y comenzarás de nuevo. 

Como habrás observado esta misión ne- 
cesita de alguien muy valiente para que 
tenga éxito... ¿Lo eres tú? 



Sonido: correcto. 
Graüsmo: bueno. 

Conclusión: un juego que sale de lo normal. 
Sumamente entretenido. 



CONFUSED 

(EL PUZZLE ELECTRONICO) 



Bytebuster/Drosoft 
Formato: cassette 64K 
Mandos: teclado o joysück 
T.cl..,RunW 



BOtIHCXMO I (■: • SPIOCBS l_í<IP 

PLnxit Deep ot_ue seo 



Si te van los rompecabezas aquí te 
presento uno muy difícil. Se trata de 
formar un puzzle, pero a diferencia 
de los puzzles normales y corrientes en 
éste las piezas se van moviendo. 

El juego tiene varias opciones y depende 
de la elección que tú hagas hallarás más o 
menos dificultad. Con respecto al tamaño 
tienes 6 opciones y también puedes elegir 
el dibujo. 

A partir de aquí hay dos maneras de ju- 
gar: En «NO Competición» y en Competi- 
ción que consiste en armar el puzzle antes 
de que te quedes sin puntos, porque en el 




momento en que comienza la partida és- 
tos empiezan una cuenta atrás. 

El dibujo del puzzle se encuentra en la 
parte izquierda de la pantalla pero tapado 
por el Logo «CONFUSED» y para poder ver- 
lo deberás elegir la función VIEW que te 
maleará la pantalla. Has de saber que al 
mirar la pantalla tu puntuación se reduci- 
rá un poco. 

Si este juego es muy difícil para ti te 
aconsejo que elijas la función SUSP y el 
juego se paralizará por un momento, así 
podrás pensar con mayor tranquilidad. 

Otra función que te servirá de ayuda es 
HELP, ya que al elegir esta función la pieza 
que hayas señalado se colocará correcta- 
mente en su sitio, aunque éste se halle 
ocupado. 

Para elegir una pieza debes guiar la fle- 
cha que hay en la pantalla hasta la pieza 
que desees y posteriormente apretar el bo- 
tón de disparo. 

El Juego finaliza cuando has completado 
el puzzle en el tiempo indicado. 

En el supuesto de que no lo consigas y el 
señor tiempo se te haya disparado, sonará 
una campanada y se te mostrará el dibujo. 



Sonido; correcto. 
Graflsmo: bueno. 

Conclusión: un juego interesante, pero que 
puede resultar complicado las primeras ve- 
ces que lo intentes. Te lo : 




NORTH SEA 
HELICOPTER 



Aackosoft 
Formato: cassette 
Mandos: j 



El objeto de este excelente juego de 
simulación es el rescate de unos 
obreros lanzados al mar por la ex- 
plosión de una plataforma petrolífera en 
el mar del Norte. 

Para efectuar el rescate, el helicóptero 
que nosotros gobernamos debe volar a 
baja altura sobre cada uno de los náufra- 
gos y pulsar una determinada tecla para 



subirlos al helicóptero, debiendo efectuar 
un viaje para cada uno de los náufragos. 

A medida que el juego va evolucionando, 
se complican las cosas para poder efec- 
tuar los rescates: Las condiciones meteo- 
rológicas son cada vez peores. 

Aun en el peor de los casos, es decir de 
noche, con viento en contra y sin ninguna 
visibilidad nuestro excelente helicóptero 
nos va a permitir -gracias a su gran canti- 
dad de controles así como a los perfecta- 
mente inteligibles indicadores de panta- 
lla— efectuar el rescate sin mayores pro- 
blemas una vez estemos familiarizados 
con los controles. 

Lógicamente, el problema por defini- 
ción con el que se van a encontrar aque- 
llos que compren este apasionante juego 
va a ser inicialmente el control del heli- 
cóptero. 

En este videojuego, el control del heli- 
cóptero se realiza mediante los dos joys- 
ticks simultáneamente mediante un joys- 
tick conectado en el port número 1, y las 
teclas de cursor o bien con los dos joys- 
ticks. ¿Por qué tanto mando? El primero 
de los joystícks controla la potencia del 
rotor principal y la del de cola, mientras 
que el segundo gobierna el ángulo de las 
hélices quedando reflejados los movi- 
mientos de los dos mandos en los corres- 
pondientes indicadores de pantalla. Ade- 
más de todo esto, el juego incorpora un 
sintetízador de voz (eso sí, en inglés) que 
da indicaciones en varios momentos del 
juego. 

En resumen: se trata de un excelente vi- 
deojuego que cuida hasta los detalles más 
nimios, con un graflsmo excelente y un 
sonido sorprendente. 




Sonido: excelente, tanto la voz sintetizada 
como la música (tema de M AS E.) 
Graflsmo: excelente, muy cuidado. 
Conclusión: juego ideal para los amantes de 
los juegos de simulación y en general para to- 
dos. 

Precio aproximado: 2.000 pts. 




POR SOLO 800 PTAS. 



'••1 



s.i.m.o. 

SIMONOTICIAS: 

Desde el día 14 al 22 de Noviembre se 
celebró en Madrid la vigésimo-sex- 
ta edición de la Feria Oficial Mono- 
gráfica Internacional del Equipo de Ofici- 
na y de la Informática SIMO 86. 

Siguiendo nuestra línea de trabajo, nos 
desplazamos hasta el SIMO 86, sito en el 
recinto ferial de la Casa de Campo de Ma- 
drid, para poder informar de las noveda- 
des más importantes que se presentaron 
en la feria. 

SIMO 86 es una feria internacional en la 
que se reúnen anualmente la mayor parte 
de las empresas relacionadas con la infor- 
mática. En concreto, este año se han reu- 
nido 1.436 expositores sobre una superfi- 
cie de 27.174 metros cuadrados, dividida 
en 6 palacios (frente a los 4 existentes en 
anteriores ediciones). 

Una de las innovaciones más interesan- 
tes de la presente edición de SIMO ha sido 
la instalación, a disposición de los visitan- 
tes, de un sistema de información a partir 
de unas pantallas gráficas que permitían 
la localización de cualquier stand y que 
mostraban el camino para llegar a él des- 
de el lugar en que se encontrase el usuario. 
Todo esto gestionado de un modo muy sen- 
cillo desde un teclado. 



MAS SOFTWARE 
PARAMSX: 



INFODIS SOFT ha cedido a DROSOFT, 
S.A. la exclusiva para la dis- 
tribución en España de los productos 
de Aacksofty Eaglesoft. Los primeros jue- 
gos que encontramos en el mercado perte- 
necientes a estas firmas son: NORTHSEA 
HELICOPTER (64 Kb), DROME (64 Kb) y 
SPACE RESCUE ( 16 Kb). Se trata de unos 
juegos realmente interesantes cuyos pre- 
cios oscilan entre las 750 y las 2.000 Ptas. 



EDICIONES SM: 

Ediciones SM presentó en el SIMO 
dos de sus programas educativos 
de la serie Protágoras adaptados al 
MSX. La serie de programas Protágoras 
consiste en un conjunto 




Reflexión de b luz 

ESPEJOS 
PLANOS 




educativos que intentan acercar al usua- 
rio ciertos hechos científicos (algunos di- 
fícilmente observables en un laboratorio). 
Cada cassette contiene un tema de Física 
con un desarrollo que permite, a quien lo 
utilice, una continua interacción con el 
ordenador. Además, para cada cassette se 
ha elaborado una pequeña revista como 




LOS GASES 



Ley de Boyte Moriotle 




material complementario para una mejor 
comprensión de los programas. 

Por el momento sólo existen dos títulos 
de la serie para los MSX: LOS GASES (Ley 
de Boyle-Mariotte) y ESPEJOS PLANOS; 
pero se espera que el catálogo se amplié 
rápidamente. 

Estos programas son comercializados 
por Philips a un precio de 1 .200 Ptas. 




sobre los antítfuos ftSS * a 8X18 úntala» 
CprácticamenS deí» n? at ° s de 8 Puigadat 

fleSS 7 P^enta SSSSi? ******* 



uensidad minio " ^ wri 
Pacidad Permite di 



58 




COMPILADOR 
PARA MSX-BASIC 



Dynadata presentó 
el primer compilador 
MSX-BASIC. 

Todos aquellos que realicéis progra- 
mas con vuestros MSX sabréis que 
el BASIC os permite realizar infini- 
dad de programas, con gran cantidad de 
gráficos, efectos de sonido, etc. Sin duda 
las condiciones del BASIC MSX son las 
mejores para el desarrollo de juegosy pro- 
gramas educativos. Pero... y esto lo saben 
muy bien los que han hecho algún juego de 
acción en los MSX, el BASIC es un lenguaje 
lento. Esta es la razón por la que muchos 
se interesen por el lenguaje ensamblador 
(código máquina), ya que soluciona el 
problema de la velocidad. A cambio resul- 
ta mucho más dificil hacer cualquier pro- 
grama. 

La solución ideal viene de la mano de 
Dynadata, con su compilador MSX-BASIC. 
El compilador es un programa que tradu- 
ce los programas en BASIC a ensambla- 
dor, siendo, de este modo, entre 8 y 100 ve- 
ces más rápidos los programas. Una vez 
compilado el programa se puede grabar 
en cinta o disco en formato de código má- 
quina. Es un paquete que echábamos a fal- 
tar en los MSX. 



Unidad de disco de 1500 
Kb 



Dynadata anunció en la edición de 
este año del SIMO la aparición de 
una nueva unidad lectora de discos 
con capacidad de 1.5Mb (1500 Kb). Esta 
lectora puede funcionar con los MSX en 
cualquiera de sus sistemas de disco: MSX- 
DOS, CP/M o MSX-DISK BASIC. Tiene en su 
configuración dos discos de 3.5 pulgadas 
con una capacidad de 750 Kb cada uno. 
Otro nuevo periférico que aumenta la pro- 
fesionaldiad de los MSX. 



NUEVO CURSO 
DE MSX BASIC 



Un nuevo curso de BASIC aparece en 
el mercado de la mano de Dynada- 
ta. El curso consta de 12 cintas con 
24 lecciones de forma que el ordenador se 



TOSHIBA HX-20: 



Más que un ordenador; 
más que una máquina de 
escribir 

El ordenador MSX Toshiba HX 20 
con procesador de textos incorpo- 
rado representa una de las muchas 
vertientes en que el MSX puede llegar a 
ser algo más que un orde 



Nada más encenderlo aparece en la pan- 
talla una imagen de rascacielos en la pan- 
talla. Sólo con presionar cualquier tecla 
del teclado aparecerá el menú que permi- 
tirá trabajar con el MSX-BASIC o con el 
tratamiento de textos. Sí decidimos utili- 
zar este último nos encontramos con un 
programa tan fácil de usar como una má- 
quina de escribir; pero con grandes posi- 
bilidades a tu alcance. 




¿HOLA? 

YO SOV TU 
PROFESOR DE 
ir^lF"0«r\AT|CA Y 
BASIC. 




convierta en profesor y herramienta al 
mismo tiempo. Pero eso no es todo. Dyna- 
data ofrece los siguientes elementos den- 
tro del curso de BASIC: ordenador Dyna- 
data MSX DPC-200, 12 cassettes que inclu- 
yen las 24 lecciones que componen el cur- 



so, manual de referencia, evaluaciones pe- 
riódicas y DIPLOMA DE FIN DE CURSO 
(Autorizado por el Ministerio de Educa- 
ción y Ciencia). Una oportunidad inmejo- 
rable de entrar en el mundo de la informá- 
tica y de los MSX. 




MACRGENSAMBLADOR 
PARAMSX 

Existen numerosos programas en- 
sambladores y desensambladores 
sobre los MSX; pero muy pocos 
pueden ser considerados MACROENSAM- 
BLADORES. No se trata de un ensambla- 
dor más grande, sino de un compilador de 
lenguaje ensamblador que permite añadir 
nuevas instrucciones no existentes sobre 
el CHIP Z-80, llamadas MACROS. De este 
modo se consigue que programar en en- 
samblador deje de ser una tarea pesada y 



monótona, ya que podemos definir como 
MACROS aquellas rutinas más útiles y 
usarlas a nuestro antojo. Dynadata ha 
lanzado al mercado un nuevo MACROEN- 
SAMBLADOR MSX que incluye el listado 
de un compilador de Tiny Basic. 



PHILIPS: NUEVOS MSX-2 

hilíps mostró en el SIMO 86 sus 
nuevos ordenadores MSX de la se- 
gunda generación (que habían sido 




SPECTRAVIDEO GANA LA BATALLA DE 
LOS COMPATIBLES: 



Spectravideo España, S -A. anunció en 
la edición del SIMO del presente año, 
la aparición, para principios de 
1987 de su nuevo modelo XTRESS 16. 
Este nuevo ordenador entra dentro de la 
linea de los compatibles IBM; pero impo- 
ne una espectacular diferencia: cuenta 
con un módulo que le permite utilizar los 
programas en cartucho de los MSX. De 
este modo Spectravideo consigue unir las 
dos diferentes tendencias en el mundo de 
loe compatibles. El estándar MSX en el 
campo de los ordenadores domésticos y el 
estándar de IBM en el campo de los orde- 
nadores personales de gestión. Se trata del 
primer ordenador compatible MSX e IBM 
al mismo tiempo, característica que puede 
convertirlo en «best seller». Combina la 
potencia y velocidad de los IBM PC (y 



compatibles) con los gráficos y la docili- 
dad de los MSX de segunda generación 

Sus características principales son: Or- 
denador basado en el chip de 16 bits 8086, 
con 256 Kb de RAM de usuario y 128 Kb de 
RAM de video. La versión mínima incluye 
teclado separado, una unidad de disco, y 
unidad central. 

Pero una de sus características más es- 
pectaculares es su precio. Una maquina 
con esta potencia y versatilidad tiene un 
precio muy por debajo que TODOS los 
otros compatibles, incluido el compatible 
AMSTRAD (que ha causado sensación por 
su bajo precio); pero es, además, mas ba- 
rato que muchos MSX de la segunda gene- 
ración. Un ordenador realmente promete- 
dor. 



presentados con anterioridad en SONI- 
MAG en Barcelona). Los principales mo- 
delos son: HOMECOMPUTER NMS 8280 
(Video Computer): Puede digitalizar imá- 
genes procedentes de una cámara de vi- 
deo, un vídeo disco, un video cassette con- 
vencional, o cualquier otra fuente de vi- 
deo. Genera efectos especiales, como fa- 
ding, cortinilla vertical y horizontal, etc. 

El modelo NMS 8250 está pensado como 
sistema integrado para la gestión, ya que 
dispone de teclado separado de la unidad 
central y dos unidades de disco de doble 
cara de 1 Mb de capacidad cada uno. En to- 
tal 2 Mb (2000Kb). 

El VG 8235 viene incorporando una 
unidad de disco y 256 de RAM (128 para el 
usuario y 128 de VRAM). 

Por último, el modelo VG 8220 es un 
MSX-2 (con 256 Kb de RAM) que no lleva 
incorporada la unidad de disco (aunque se 
le puede incorporar si se desea), por lo que 
resulta mucho más económico. 




NORTHSEA HELICOPTER: 
LO ULTIMO EN JUEGOS 



Aacksoft llega, de la mano de Dro- 
soft, a los mercados españoles 
con unos espectaculares juegos 
de acción. Claro ejemplo de ello es este jue- 
go: Northsea Helicopter, que combina una 
inmejorable presentación gráfica en tres 
dimensiones con impresionantes efectos 
musicales y voz sintetizada. 

Una explosión en una plataforma petro- 
lífera arroja a varios trabajadores heridos 
al Mar del Norte. Tú ocupas el lugar del pi- 
loto del helicóptero de rescate, y tu misión 
es rescatar a todos los heridos antes de 
que se ahoguen. Para ello cuentas con un 
potente helicóptero, del que puedes con- 
trolar gran cantidad de parámetros me- 
diante los dos joysticks que precisa el Jue- 
go para funcionar. El manejo es similar al 
de un helicóptero real, controlando con 
un joystick la inclinación de las palas del 
rotor, mientras con otro controlas la po- 
tencia del motor. 

El copiloto te irá indicando, de viva voz, 
la situación de los náufragos, así como 
otra información que ayude a la consecu- 
ción de la partida. 

Excepcional juego que puede haceros 
pasar muchas horas ante el ordenador. Su 
precio es de 2.000 ptas., aproximadamen- 
te. 



fin 




KONAMI INAUGURA 
TIENDA 



EN MADRID ESTAN 
DE ENHORABUENA 

El día 14 de Noviembre a las 21 ho- 
ras tuvo lugar en Madrid la inau- 
guración de la tienda de Konami, 
situada en la calle de Francisco Navace- 
rrada número 19. 

Konami, líder en el mercado español de 
los videojuegos da así un nuevo paso al 
frente en cuanto a servicio a los usuarios 
Con la apertura de este local, de corte eu- 
ropeo situado en una céntrica zona de Ma- 




drid, los usuarios de esta ciudad van a te- 
ner la inmensa suerte de ser los primeros 
en poder disponer de las novedades que 
presenta constantemente esta firma, con- 
tactando directamente con el distribuidor. 

Enhorabuena por ello y... ¿Para cuándo 
tiendas KONAMI en el resto de España? 



EGOS: MAS QUE UN 
SISTEMA OPERATIVO 



Todos los usuarios de unidades de 
disco que utilicen el MSX-DOS (sis- 
tema operativo de disco ) se habrán 
dado cuenta de la importancia de un buen 
sistema operativo. Copiar ficheros, editar- 
los, borrarlos o renombrarlos pueden ser 
tareas agobiantes o triviales dependiendo 
del sistema operativo utilizado. 

Philips mostró en la pasada edición del 
SIMO el programa EGOS, que, ademas de 
satisfacer todas las necesidades de un 
buen sistema operativo hará que el uso del 
mismo sea cómodo y fácil de aprender, ya 
que todas las opciones son controladas 
por medio de iconos en la pantalla. 

Junto con las opciones clásicas de la 
mayoría de sistemas operativos, EGOS 
ofrece opciones como las de reloj, calcula- 
dora, alarma, agenda de notas, y la posibi- 
lidad de imprimir todo cuanto aparezca 
por pantalla. 

Está preparado para funcionar con los 
ordenadores MSX de segunda generación 
y su precio es de 4.900 ptas., aproximada- 
mente. 




Nombre y apellidos 



SUSCRIBETE HOY MISMO SI 



QUIERESESTARENVANGUAMIA 



La primera revista de MSX de España en ta domicilio cada 
mes. Por el precio de DIEZ NUMEROS recibirás DOCE. 

Además tu condición de suscriptor te da derecho 
a descuentos y ofertas especiales en otos productos. 
MANHATTAN TRANSFER, S JL 



Calle 

i Ciudad 



N. c 



Tel. 



Provincia 
— 



— 



Deseo suscribirme a la revista 
SUPERJUEGOS EXTRA MSX 
a partir del número 

FORMA DE PAGO: Mediante talón b an- 
earlo a nombre de: 

MANHATTAM TRANSFER, SJL 
C/. Roca i BatUo, 10-12 
08083 Barcelona 
— — 



Muy Importante: para evitar retraaos en la 
recepción de loa números rogamos deta- 
lléis exactamente el nuevo numero de los 
distritos postales. Gracias. 

TARIFAS: 

España por correo normal Ptas. 1 .780,- 

Buropa correo normal Ptas. 2.000,- 

■uropa por avión Ptas. 8.BOO- 

América por avión 88 USA * 



1 



I 



P51 



RUTINAS DE ENTRADAS DE DATOS: 



Una puerta a la seguridad 

¿A quién no le ha aparecido alguna vez en pantalla el desagradable mensaje REDO FROM START? ¿Cómo evitarlo? 

¿Cómo hacer INPUTs en SCREEN 2? 




Uno de los primeros problemas 
que nos encontramos al intentar 
programar programas de ges- 
tión, educativos, o simplemente cual- 
quier programa que funcione como 
debe hacerlo es el control de las entra- 
das de datos. Resulta desesperanzador 
ver como, por una tonta equivocación en 
la entrada de un valor en un INPUT el 
programa se para, o simplemente se 
nos estropea la pantalla de presenta- 
ción que con tanto trabajo habíamos 
realizado, con el horrible mensaje 
REDO FROM START. 

Evitarlo no es fácil, y nos obliga a de- 
sarrollar subrutinas especializadas en la 
entrada de datos, que en algunas oca- 
siones llegan a ser muy complicadas y 
de gran tamaño. 

En primer lugar debemos descartar la 
instrucción INPUT de todos los progra- 
mas que queremos tengan un cierto aire 
de profesionalidad. Pero, ¿cómo pode- 
mos hacer un INPUT sin hacer un IN- 
PUT? La respuesta es el siguiente ar- 
tículo, en el que intentaremos conven- 
ceros para que utilicéis lo más posible 
las rutinas de entrada de datos en vues- 
tros programas. 

Existen tres instrucciones (casi cua- 
tro) que nos permiten explorar el teclado 
para saber qué es lo que el usuario ha 
escrito en un momento dado. Estas son: 
INPUT: Este comando muestra un in- 
terrogante en la pantalla y espera a que 
el usuario teclee una línea, acabada con 
RETURN.- Sólo se puede utilizar en 
SCREENS ó 1. 

LINE INPUT: Esta variante del INPUT 
(no es en realidad otra instrucción dife- 
rente) permite que se incluyan comas 
dentro de un INPUT (cosa que no se po- 
día hacer con un INPUT normal). Su 
principal inconveniente es que sólo pue- 
den entrarse caracteres y no datos nu- 
méricos. 

INPUT$ (X): Espera a que se tecleen 
x caracteres desde el teclado, sin mos- 
trarlos por la pantalla. Se puede utilizar 
por tanto en SCREENS 2 y 3, además 
de la y la 1 . 

INKEYS: Esta instrucción devuelve el 
carácter que se estuviese apretando 
cuando fue ejecutada la instrucción; 
pero devuelve la.cadena nula "" si no se 
aprieta ninguna tecla. 

Vamos a incluir algunos ejemplos de 
utilización de las instrucciones que he- 
mos comentado: 

INPUT "¿Cómo te llamas";a$ 
¿Cómo te llamas? WILLY 

El ordenador introduce la respuesta 
en a$: a$= "WILLY" 



INPUT "¿Quién eres";b$ 
¿Quién eres? WILLY, alias YO 
REDO FROM START -El ordenador 
no permite la entrada de la coma. 
LINE INPUT "¿Quién eres";c$ 
¿Quién eres WILLY, alias YO 
En este caso hemos podido incluir la 
coma c$= "WILLY, alias YO" ; pero el or- 
denador no ha escrito el interrogante ni 
ha dejado el espacio de separación en- 
tre preguntas y respuesta. 

d$=INPUT$(2) 

No aparece nada en pantalla; pero es- 
cribo YO y el ordenador hace: d$= "YO" 

A$=INKEY$ 

No aparece nada en pantalla; pero el 
ordenador nos ha mostrado ya el Ok. Ha 
acabado: a$="" (nada) 

En vista de todo esto va a resultar difí- 
cil decidirnos por una de ellas. En reali- 
dad esta elección se realiza según el 



tipo de programa que estemos realizan- 
do. Si estamos realizando un programa 
de cálculo de ecuaciones en el que no 
nos importa la presentación, podemos 
utilizar INPUT, que nos facilitará enor- 
memente el trabajo. 

Si estamos realizando un juego, en el 
que nos interesa que la acción no cese, 
utilizaremos INKEY$. Por ejemplo, no 
interesa que los marcianos se paren y 
esperen a que apretemos una tecla. 

Finalmente, INPUT$(x) será la utiliza- 
da en las entradas de datos de los pro- 
gramas profesionales. El formato que 
utilizaremos de modo más general será 
A$=INPUT$ (1), que puede sustituirse 
por una línea con un INKEY$: 

xxxxx A$=INKEY$: IF A$="" THEN 
GOTO xxxxx 

El GOTO puede suprimirse, como en 
todas las líneas IF... THEN; pero inclu- 
yéndolo en nuestros programas facilita- 
mos la lectura posterior del mismo por 
otros usuarios, o por nosotros mismos 



fi? 



más adelante. 

En el listado 1 tenéis el bloque central 
de la rutina. Intentaremos explicar estas 
líneas de un modo sencillo y claro. 

La línea 5 inicializa la variable t$. 
Pone «nada» dentro de la variable t$ 
para poder iniciar el proceso. En la va- 
riable t$ se almacenará todo lo que ha- 
yamos escrito hasta el momento. 

La línea 1 espera a que se pulse una 
tecla, poniendo en a$ el carácter pulsa- 
do. La línea 20 añade a t$ el carácter 
que acabamos de pulsar (t$=t$+a$). 

La línea 30 muestra en pantalla el ca- 
rácter que hemos pulsado, dejando el 
cursor a continuación del mismo para 
que aparezca en ese punto el siguiente 
carácter que tecleemos. La línea 40 cie- 
rra el bucle hacia la línea 10, con lo que 
el ordenador espera el siguiente carác- 
ter, etc. 

Evidentemente con esta rutina no ga- 
namos nada respecto al INPUT, es más, 
el bucle es infinito, con lo que no dejará 
nunca de esperar que pulsemos más 
caracteres. 

Para solucionar este primer inconve- 
niente hemos de añadir otra línea que 
haga que, al pulsar RETURN (código de 
carácter 13), se finalice el bucle, con lo 
que no esperará más caracteres. Esta 
1 1 nea no es más que la I ínea 1 5 del lista- 
do 2. Fijaos que va antes de la línea 20 
porque no queremos que añada el carác- 
ter RETURN a lo que hayamos escrito. 

Un importante inconveniente de 
nuestro programa, tal como lo tenemos 
ahora, es que no podemos corregir si 
nos equivocamos. Para ello hemos de 
(como ya os podéis imaginar) añadir 
otra línea, que no es más que la línea 1 7 
del listado 2. En esta línea comproba- 
mos si la tecla apretada es BACKSPA- 
CE (BS) (código 8), y si lo es, borramos 
el último carácter, tanto de la pantalla 
como de t$, para que en esta variable 
tengamos un registro fidedigno de lo 
que hay escrito en la pantalla. La prime- 
ra parte, eliminar de la pantalla es senci- 
lla. Recordad que el cursor se encuentra 
en el cuadro en que tendría que apare- 
cer el siguiente: moverlo hacia atrás un 
cuadro, poner un espacio en blanco en 
esa posición y volver a retrocederlo un 
cuadro. Aunque parezca complicado es 
lo que hacéis para corregir un carácter 
utilizando las teclas de cursor. Si recor- 
dáis que en este caso a$ es el carácter 8 
(IF a$=CHR$ (8)...) entenderéis el 
PRINT de la línea 17. 

La segunda parte consiste en eliminar 
el último carácter de t$. para ello hemos 
de coger todos menos uno empezando 
por la izquierda. Si pensamos que el nú- 
mero de caracteres de una cadena vie- 
ne especificada por la función LEN, en- 
tenderéis la instrucción LEFT$ (T$, 
LEN(T$) — 1). Los LEN (t$)— 1 caracte- 
res más a la izquierda de t$, es decir, to- 
dos menos el último. 

Pero el ordenador nos marcará error 
si intentamos borrar un carácter antes 



LISTADOS 



Listado 1. 
5 TI= H " 

10 A$=INPUT$(1) 
20 T$=Tí+A$ 

30 PPINT A$; 
40 GOTO 10 

Listado 2. 
5 Tl«" 

10 A$=INPUT$(1) 

15 IF A$=CHR$(13) THEN END 

17 IF Ai=CHP$(B) THEN PPINT A$:' ";A$;:T 

i=LEFT$(T$,LEN(T*)-l):GOTO 10 

20 Tí=T$+A$ 

30 PRINT Al; 

40 GOTO 10 

Listado 3. 

5 T$=" B 

6 L=12 

7 PPINT STPINGf (L, " ") ;STRING$(L.3) ; 
10 Aí=!NPUT$(l) 

15 IF A$=CHR$(13> THEN END 

17 IF A*=CHR$f8> AND LENíT$)>0 THEN PRIN 

T A$;"_ B :A$;:T$=LEFT$(T$,LEN'T$)-l):G0TO 
10 

18 IF A$<CHR$(32) THEN GOTO 10 

19 IF LEN(T$)=L THEN GOTO 10 

20 T$=T$+A$ 
30 PRINT A$; 
40 GOTO 10 

Listado 4. 
10 ' 

u ' mmummmtmmmt 

12 ' **t EJEMPLO DE USO DE LA ttt 

13 ' mmm subrutina tmmt 

14 ' mmtmtmtmmmmt 

15 ' 
17 CLS 

20 LOCATE 3,10:PP1NT "¿Cómo te llamas? " 

30 L=15:G0SUB 60000 

40 PRINT: PRINT: PRINT "BIEN. . . ";TS 

50 END 



60001 ' RUTINA DE ENTPADA DE DATOS 

60002 ' 

60003 T$=" 

60004 PRINT STPING$(L," ') ;STRING$(L,B) ; 

60005 A$=INPUTi(l) 

60006 IF A$=CHP$(13) THEN RETURN 

60007 IF A$=CHR$(8) AND LEN(T$)>0 THEN P 



RINT A*;V;A$::T$=LEFT$(T$,LEN(T$)-1):G 
OTO 60005 

60008 IF A$<CHP$(32) THEN GOTO 60005 

60009 IF LEN(T$)=L THEN GOTO 60005 

60010 T$=T$*A$ 

60011 PRINT A$; 

60012 GOTO 60005 

Listado 5. 



60001 í RUTINA DE ENTRADA DE NUMEROS 

60002 ' 

60003 T$= B " 

60004 PPINT STPING$(L,'.");STPING$'L.8»; 

60005 A*=INPUT$(1) 

60006 IF A$=CHR$(13) THEN PETUPN 

60007 IF A$=CHR$(8) AND LEN(T*)>0 THEN P 
RINT A$;V;A$::T$=LEFT$íT$.LEN'T*)-!!:G 
OTO 60005 

60008 IF A$<"0" OP m*F THEN GOTO 6000 
5 

6000? IF LEN(T$)=L THEN GOTO 60005 

60010 T$=T$+A$ 

60011 PPINT AS: 

60012 GOTO 60005 

Listado 6. 



60001 ' RUTINA DE ENTPADA EN SCPEEN 2 

60002 » 

' Hay que inicializar antes 

' las variables: 



Mi Coordenadas del INPUT. 
L: Longitud del INPUT. 



6000? COLOR 15,4,4 

60010 OPEN "GPP:" AS #1 

60011 T$=" 

60012 FOR J=X TO X+(L-1) t6 STEP 6:PRESET 

(J,Y):PRINT*1, "_":NEXT ¿ 

60013 A$=INPUT$(1) 

60014 IF A$=CHR$(13) THEN CL0SEI1: RETURN 

60015 IF A$=CHR$(B) AND LEN(T$)>0 THEN X 

=X-6:LINE(X,YWX+5,Y+8),4,BF:PRESET(X,Y 

):PRINTiI,V:T$=LEFT$(T$,LEN(T$)-l):GOT 
60013 

60016 IF A$<CHP$(32) THEN GOTO 60013 

60017 IF LEN ÍT$) =L THEN GOTO 60013 1 

60018 Ti=T$+A$ 

60019 LINE (X.Y)-(X+5,Y+8).4,BF 

60020 PRESET(X,Y) 

60021 PRINTIl.A* 

60022 -X=X+6 

60023 GOTO 60013 



63 



de haber escrito ninguno. ¿Cuáles son 
los caracteres más a la izquierda de 
"nada"? Hemos de decirle al ordenador 
que sólo se puede borrar si ya hay algo 
escrito (parece mentira... algo tan evi- 
dente...). Esto lo hacemos modificando 
la línea 1 7 de la siguiente forma: 

17 IF A$=CHR$ (8) AND LEN(T$) 
>0 THEN PRINT... 

Sólo borrará si pulsamos la tecla de 
borrado y hay algo que borrar (T$ tiene 
más de cero caracteres). 

En este punto la rutina de entrada de 
datos es ya plenamente operativa. Ya 
hace lo que queríamos; pero somos 
muy exigentes y vamos a intentar mejo- 
rarla. En primer lugar podemos eliminar 
aquellas teclas que no nos interesan (no 
nos interesa que el usuario vaya mo- 
viéndose por la pantalla con las teclas 
del cursor, ni que pueda borrar la panta- 
lla por error, etc). En general eliminare- 
mos todas aquellas teclas que ejecuten 
acciones (borrar pantalla, mover el cur- 
sor, etc), que corresponden a los códi- 
gos menores a 32. Si deseáis más infor- 
mación sobre estos códigos podéis con- 
sultar vuestro manual o bien el número 
de Navidad de nuestra revista hermana 
MSX CLUB. (Las secuencias de esca- 
pe). 

Esta eliminación se consigue con la lí- 
nea 18, que salta a la línea 1 si el códi- 
go es menor que el 32, con lo que se es- 
perará otro carácter. Esta línea es im- 
portante que se coloque tras las otras 
verificaciones, ya que la rutina sí debe 
aceptar la tecla RETURN (código 13) y 




BACKSPACE (código 8). 

Podemos añadir también una limita- 
ción al número de caracteres, cuyo nú- 
mero máximo almacenaremos en la va- 
riable L. La línea 19 sería entonces: 
19 IF LEN(T$) = L THEN 10 

Si la longitud es ya máxima desvía la 
ejecución del programa, con lo que los 
nuevos caracteres no se añadirá a t$, ni 
aparecerán la pantalla. 

Podemos indicar también, con símbo- 
los de subrayado, el número de caracte- 
res a escribir, para que el usuario sepa 
cuánto espacio tiene disponible para la 
escritura. 

En definitiva, todas las ocurrencias 
son válidas para desarrollar una buena 
rutina de entrada de datos. En ocasio- 



nes interesará que sólo admita caracte- 
res en mayúsculas, o sólo números, con 
lo que habréis de cambiar la línea 18. 

Esta es una rutina que, como ya se ha 
dicho, admite infinidad de variantes para 
cada caso particular. Os adjuntamos va- 
rias de estas posibles variantes para 
pantallas de texto y gráficos, para entra- 
das numéricas, etc; pero esperamos 
que a partir de ahora vuestros progra- 
mas las incluyan cada vez con mayor 
frecuencia. 

Observaréis una importante diferen- 
cia entre las rutinas que os facilitamos 
en las diferentes versiones y la que he- 
mos construido paso a paso. En reali- 
dad hemos construido un programa. 
Convertirlo en un subprograma o subru- 
tina es sumamente fácil. 

En primer lugar hay que cambiar los 
números de línea del programa por 
otros lo suficientemente elevados para 
que no interfieran con nuestros progra- 
mas .(Una posición muy extendida entre 
los programadores profesionales es la 
línea 60000). 

El otro paso a dar es cambiar la ins- 
trucción END por un RETURN; ya que 
no debe pararse el programa porque 
pulsemos la tecla RETURN (no hay que 
confundir la instrucción con la tecla del 
mismo nombre), sino que debe finalizar 
la subrutina y regresar al programa prin- 
cipal. 

La forma de utilizar estas rutinas que- 
da claramente reflejada en el listado 4. 

W. Miragall 



HARD C0PY 

SERIE ORO DE MANHATTAN 



Con Hard Copy iniciamos lo que hemos dado en llamar 
Serie Oro. A partir del próximo mes ya estará disponi- 
ble el primero de los cassettes de aplicación. Con Hard 
Copy, desarrollado totalmente en Código Máquina, el 
usuario podrá realizar copias en tres formatos diferen- 
tes, hacer simulación en blanco y negro de los colores 
por degradación de grises, copiar sprites, grabar o 
cargar pantallas en cinta, copiar en inverso, redefinir 
tonos de colores, etc. Además dispondrá de menús 
por ventanas y controlar el Hard mediante cursores o 
joysticks. Y lo que es más importante es que es com- 
patible con cualquier tipo de impresora. 



64 





ma "Mciaj. 



¡¡¡SONÓ LA FLAUTA!!! 



ESTE MES 
LANZAMOS 




La primera revista de Compact Disc de España 
COMPACTA Y DIFERENTE 



Totalmente pensada para ¡os usuarios de CD, un concepto 
revolucionario en ¡a reproducción del sonido. 

Toma nota de nuestro sumario 

- CD - La pureza del sonido 

- CD - Interactivo 

- CD-ROM 

- GUIA COMPLETA DE APARATOS COMPACT DISC 

- COMPLETO CA TALOGO DE DISCOS 
Música clásica y jazz 

- LOS 50 CLASICOS IMPRESCINDIBLES 

- LOS «TWENTY POPS» 




NO ES CASUALIDAD 

Otro producto de Manhattan Transfer, S.A. 



TODOS LOS PROGRAMAS DEL 




JUEGOS: 




- C.A.D. 


24 


- Crazy Labyrinth 


22 


- Froguer 


14 


- Juego de los barquitos 


23 


- Karate night 


17 


- Misión imposible 


22 


- Mongolfier 


18 


- Ogros 


22 


- Pelotín 


15 


- Roby Defenser 


19/20 


- Starman 


16 


- Sopa de letras 


18 


-Trigi 


21 



UTILIDADES: 

- Agenda 21 

- Calculadora 22 

- Calendario Perpetuo 15 

- Catál. para cassettes Especial C.M. 

- Desensamblador I Especial C.M. 

- Desensamblador II Especial C.M. 
-Estadística 14 

- Generador de miras para TV 23 
-Loro 19/20 
-Morse 19/20 
-Quinielas 14 

- Test de adaptación 1 7 

- Volcado de pantalla 1 6 



MUSICA: 

- La fuga n.° 2 (J. S. Bach) 1 4 

- Sinfonía de los juguetes 21 

EDUCATIVOS: 

-Ecuaciones 18 

- Funciones circulares 1 6 

- Genética 24 

- Representación de funci. gráficas 24 

GRAFICOS: 

- Dibujos simétricos 15 

- Hipocicloide 14 




Conviértete en el más valiente pilo- 
to interestelar. Libra una especta- 
cular batalla y atraviesa el hiperes- 
pacio. Destruye bunkers, minas 
mortales y naves agresoras. Tu des- 
treza y tus misiles puedan salvar la 
vida de los Hornos tiranizados por 
Darus. 

STAR RUNNER ES UN JUEGO 
SENSACIONAL 
Producido por 
Manbattan Transfer, S.A. 
RocaiBatlle, 10-12 
08023 Barcelona 




TITULO:— 

NOMBRE Y APELLIDOS: 

DIRECCION: CODIGO POSTAL: 

POBLACION: PROVINCIA: 

FORMA DE PAGO: ENVIO TALON BANCARIO □ - CONTRA REEMBOLSO □ 



YAMAHA 

MUSIC COMPUTER 





YAMAHA-HAZEN